Blog / 阅读

SQL SERVER中XML查询:FOR XML指定RAW

by admin on 2014-03-26 11:30:53 in ,



前言 在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 类型的列 [sql] view plaincopy 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查询。


写评论

相关文章

上一篇:SQL SERVER中GROUPING SETS,CUBE,ROLLUP

下一篇:oracle常用命令大全

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云