mssql sqlserver xml之query()函数使用说明


摘要:
下文将分享sql server中”操作xml数据类型”的函数query的用法,如下所示:
实验环境: sqlserver 2008



query 简介

query功能说明:
query 通过指定表达式,匹配出当前xml数据类型下的xml信息,并输出匹配后的结果
query 语法:
query(‘XQuery’)
XQuery 参数说明:
XQuery为一个xml节点的表达式–注意参数的大小写需同xml中一致,否则将返回空(无匹配结果)
Xquery参数必须输入,当我们输入”/”时,则会返回当前xml信息
XQuery 参数类型:
XQuery须为一个字符串类型
query查询的返回值:
返回一个xml数据类型的结构

query 举例应用

   /*
对以下xml数据类型,执行query操作,
查询指定节点下的信息,如下所示:
检测以下xml中的
 
*/

declare @xmlInfo xml

 set @xmlInfo ='
 < root >
 < userDefine keyId="1" >
  < sort >
    < sortName>博客< /sortName >
    < sortInfo>sql教程博客< /sortInfo >
  < /sort>
< /userDefine >
< userDefine keyId="2" >
  < sort >
    网站< /sortName >
    www.maomao365.com< /sortInfo >
  < /sort >
< /userDefine >
< /root >'
SELECT 
@xmlInfo.query('/root/userDefine/sort') as [A],
@xmlInfo.query('/root/userDefine/Sort') as [B],
@xmlInfo.query('/root/userDefine/sort/te') as [C]

---输出 A为相应的xml信息 ,B由于Sort大写所以无输出信息,C无相应节点,输入为空
< sort >
  < sortName >博客< /sortName >
  < sortInfo >sql教程博客< /sortInfo >
< /sort >
< sort >
  < sortName >网站
  < sortInfo >www.maomao365.com< /sortInfo >
< /sort >

/*
使用xml查询符合结构的指定系列
例:查询第一个/root/userDefine/sort系列
  和查询第二个系列
*/
 
 
SELECT 
@xmlInfo.query('/root/userDefine[1]/sort') as [A],
@xmlInfo.query('/root/userDefine[2]/sort') as [B] 

实验脚本下载:
mssql_7477_xml_query实验脚本下载