J B*_*une 5 xml sql sql-server sql-server-2008-r2
我正在使用SQL Server 2008 R2运行查询FOR XML PATH
.我唯一的问题是我想要显示所有元素,即使它们是NULL并且我想要返回的空(或null)元素
<MyElement />
Run Code Online (Sandbox Code Playgroud)
不是
<MyElement></MyElement>
Run Code Online (Sandbox Code Playgroud)
您可以在字段列表中的子查询中查询字段,使用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')
Run Code Online (Sandbox Code Playgroud)
结果:
<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>
Run Code Online (Sandbox Code Playgroud)