本文介绍了将空或空字段作为 <element/> 返回;从 SQL Server 2008 R2 使用 FOR XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 FOR XML PATH 从 SQL Server 2008 R2 运行查询.我唯一的问题是我希望所有元素都出现,即使它们是 NULL 并且我希望空(或 null)元素返回为

I am running a query from SQL Server 2008 R2 using FOR XML PATH. My only issue is that I want ALL elements to appear, even if they are NULL and I want empty (or null) elements to return as

<MyElement />

不像

<MyElement></MyElement>

推荐答案

您可以在字段列表的子查询中查询字段,使用for xml,创建两个版本的空元素.

You can query the field in a sub-query in the filed list, using for xml, create both versions of empty element.

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>

这篇关于将空或空字段作为 <element/> 返回;从 SQL Server 2008 R2 使用 FOR XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 02:21