设为首页 加入收藏

TOP

SQLSERVER中XML查询:FORXML指定RAW
2014-11-24 02:57:18 来源: 作者: 【 】 浏览:2
Tags:SQLSERVER XML 查询 FORXML 指定 RAW

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

运行后结果:



红色字体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值进行测试。

结果:


1
LeeWhoeeUniversity


2
SQLSERVER中XML查询


3

元素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
运行结果:


1
LeeWhoeeUniversity


2
SQLSERVER中XML查询


3

使用XMLDATA和XMLSCHEMA

XMLDATA返回描述文档结构的 XML-DATA 架构。

如:

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,XMLDATA


结果:











XML SCHEMA

通过指定 XMLSCHEMA 选项,您可以针对结果请求 XSD 架构:

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,XMLSCHEMA
结果:


















您可以将目标命名空间 URI 指定为 FOR XML 中 XMLSCHEMA 的可选参数。

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,XMLSCHEMA ('urn:http://blog.csdn.net/lihui_830501')

结果:


















检索二进制数据

像XMLDATA一样,在SQL中指定BINARY BASE64。

重命名 元素

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 ('myrow')

结果:



指定ELEMENTS的情况类同。

为 FOR XML 生成的 XML 指定根元素

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,root('myroot')

结果:





查询 XML 类型的列

declare @xml table(xid int,xname varchar(50),xmlcol xml);
insert into @xml select 1,'第一行','
  
  
  
'
insert into @xml select 2,'第二行','
  
  
'
select xid,xname,xmlcol.query('/myroot') from @xml for xml raw

结果:













总结

以上对指定RAW的XML查询就介绍完了,下一篇文章将继续用实例介绍SQL SERVER中的XML查询:指定AUTO查询。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sqlserver游标的实现 下一篇久违的SQL标准

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)
·到底应该用MySQL还是 (2025-12-24 15:18:11)
·进入Linux世界大门的 (2025-12-24 14:51:47)
·Download Linux | Li (2025-12-24 14:51:44)