我正在使用FOR
XML PATH从sql Server 2008 R2运行查询.我唯一的问题是我想要显示所有元素,即使它们是NULL并且我想要返回的空(或null)元素
<MyElement />
不是
<MyElement></MyElement>
解决方法
您可以在字段列表中的子查询中查询字段,使用for xml,创建两个版本的空元素.
declare @T table ( ID int identity primary key,Name nvarchar(10) ) insert into @T(Name) select 'Name 1' union all select null union all select 'Name 2' select ID,(select Name as '*' for xml path(''),type) as Name,(select Name as '*' for xml path('Name'),type) from @T for xml path('row')
结果:
<row> <ID>1</ID> <Name>Name 1</Name> <Name>Name 1</Name> </row> <row> <ID>2</ID> <Name></Name> <Name /> </row> <row> <ID>3</ID> <Name>Name 2</Name> <Name>Name 2</Name> </row>