从 XML 中排除空白列
Exclude blank columns from XML
我正在尝试将 Table 行添加到 XML 行。我可以通过以下方式完成,唯一的问题是它还会为空白列生成 XML 标签。
create table test_niks_01(x int, y varchar(10));
insert into test_niks_01 values(1, 'ABC');
INSERT INTO test_niks_01 values(2);
INSERT INTO test_niks_01 values(3, '');
--SelecT query_to_xml('SELECT * FROM test_niks_01', false, false, '');
select xmlelement(name "Root", xmlforest (x as X, y as Y));
输出XML:
<Root><x>1</x><y>ABC</y></Root>
<Root><x>2</x></Root>
<Root><x>3</x><y></y></Root>
预计XML:
<Root><x>1</x><y>ABC</y></Root>
<Root><x>2</x></Root>
<Root><x>3</x></Root>
如有任何帮助,我们将不胜感激。谢谢
您可以只使用 nullif()
将空字符串转换为第二列中的 null
s:
select xmlelement(name "Root", xmlforest (x as X, nullif(y, '') as Y)) from test_niks_01
| xmlelement |
| :------------------------------ |
| <Root><x>1</x><y>ABC</y></Root> |
| <Root><x>2</x></Root> |
| <Root><x>3</x></Root> |
我正在尝试将 Table 行添加到 XML 行。我可以通过以下方式完成,唯一的问题是它还会为空白列生成 XML 标签。
create table test_niks_01(x int, y varchar(10));
insert into test_niks_01 values(1, 'ABC');
INSERT INTO test_niks_01 values(2);
INSERT INTO test_niks_01 values(3, '');
--SelecT query_to_xml('SELECT * FROM test_niks_01', false, false, '');
select xmlelement(name "Root", xmlforest (x as X, y as Y));
输出XML:
<Root><x>1</x><y>ABC</y></Root>
<Root><x>2</x></Root>
<Root><x>3</x><y></y></Root>
预计XML:
<Root><x>1</x><y>ABC</y></Root>
<Root><x>2</x></Root>
<Root><x>3</x></Root>
如有任何帮助,我们将不胜感激。谢谢
您可以只使用 nullif()
将空字符串转换为第二列中的 null
s:
select xmlelement(name "Root", xmlforest (x as X, nullif(y, '') as Y)) from test_niks_01
| xmlelement | | :------------------------------ | | <Root><x>1</x><y>ABC</y></Root> | | <Root><x>2</x></Root> | | <Root><x>3</x></Root> |