SQL SERVER中XML查询:FOR XML指定RAW
前言
在SQL SERVER中,XML查询可以指定RAW,AUTO,EXPLICIT,PATH。本文用一些实例介绍SQL SERVER中指定RAW的XML查询。
基础FOR XML查询
看实例:
with TestXml
as
(
select 1 as id,'LeeWhoeeUniversity' as name
union all
select 2,'SQLSERVER中XML查询'
union all
select 3 ,'FOR XML'
)
select id,name from testxml for xml raw,type
运行后结果:
<row id="1" name="LeeWhoeeUniversity" />
<row id="2" name="SQLSERVER中XML查询" />
<row id="3" name="FOR XML" />
红色字体type可选,不会影响结果,只是影响数据类型。
指定 ELEMENTS:
with TestXml
as
(
select 1 as id,N'LeeWhoeeUniversity' as name
union all
select 2,N'SQLSERVER中XML查询'
union all
select 3 ,null
)
select id,name from testxml for xml raw,elements
注意,第三行值改为NULL值进行测试。
结果:
<row>
<id>1</id>
<name>LeeWhoeeUniversity</name>
</row>
<row>
<id>2</id>
<name>SQLSERVER中XML查询</name>
</row>
<row>
<id>3</id>
</row>
元素name在第三行没有出现,因为是NULL值。
但是我们可以用XSINIL生成NULL值的name元素。
如:
with TestXml
as
(
select 1 as id,N'LeeWhoeeUniversity' as name
union all
select 2,N'SQLSERVER中XML查询'
union all
select 3 ,null
)
select id,name from testxml for xml raw,elements XSINIL