SQL Server XML 入门的18句话

以下的文章主要描述的是SQL Server XML 入门的18句话,如果你对SQL Server XML 入门的18句话有兴趣的话,你就可以对以下的文章点击观看了,以下就是文章的详细内容介绍,望大家借鉴。

sql xml 入门:

 

 

 

1、xml: 能认识元素、属性和值

 

 

2、SQL Server xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)

 

 

语法格式,这些语法可以组合为条件:

 

“.”表示自己,”..”表示父亲,”/”表示儿子,”//”表示后代,

 

“name”表示按名字查找,”@name”表示按属性查找

 

 

“集合[条件]” 表示根据条件取集合的子集,条件可以是

 

数 值:数字,last(),last()-数字 等

 

布尔值:position()<数字,@name=’条件’,name=’条件’

 

条件是布尔值的时候可以合并计算:and or

 

 

3、xquery: 基于xpath标的准查询语言,SQL Server xquery包含如下函数

 

exist(xpath条件):返回布尔值表示节点是否存在

 

query(xpath条件):返回由符合条件的节点组成的新的SQL Server xml文档

 

value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一

 

nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表

 

 

 

  1. declare @ data xml   
  2. set @ data = '   
  3. <bookstore>   
  4. <book category="COOKING">   
  5. <title lang="en">Everyday Italian</title>   
  6. <author>Giada De Laurentiis</author>   
  7. <year>2005</year>   
  8. <price>30.00</price>   
  9. </book>   
  10. <book category="CHILDREN">   
  11. <title lang="jp">Harry Potter</title>   
  12. <author>J K. Rowling</author>   
  13. <year>2005</year>   
  14. <price>29.99</price>   
  15. </book>   
  16. <book category="WEB">   
  17. <title lang="en">XQuery Kick Start</title>   
  18. <author>James McGovern</author>   
  19. <author>Per Bothner</author>   
  20. <author>Kurt Cagle</author>   
  21. <author>James Linn</author>   
  22. <author>Vaidyanathan Nagarajan</author>   
  23. <year>2003</year>   
  24. <price>49.99</price>   
  25. </book>   
  26. <book category="WEB">   
  27. <title lang="cn">Learning XML</title>   
  28. <author>Erik T. Ray</author>   
  29. <year>2003</year>   
  30. <price>39.95</price>   
  31. </book>   
  32. </bookstore>   
  33. '  

 

测试语句,如果不理解语法请参考上面的xpath规则和xquery函数说明

1、文档

select @ data

 

2、任意级别是否存在price节点

 

select @ data . exist (‘//price’ )

 

3、获取所有book节点

 

select @ data . query (‘//book’ )

 

4、获取所有包含lang属性的节点

 

select @ data . query (‘//*[@lang]’ )

 

5、获取***个book节点

 

select @ data . query (‘//book[1]’ )

 

6、获取前两个book节点

 

select @ data . query (‘//book[position()<=2]’ )

 

7、获取***一个book节点

 

select @ data . query (‘//book[last()]’ )

 

8、获取price>35的所有book节点

 

select @ data . query (‘//book[price>35]’ )

 

9、获取category=”WEB”的所有book节点

 

select @ data . query (‘//book[@category=”WEB”]’ )

 

10、获取title的lang=”en”的所有book节点

 

select @ data . query (‘//book/title[@lang=”en”]’ )

 

11、获取title的lang=”en”且 price>35的所有book节点

 

select @ data . query (‘//book[./title[@lang=”en”] or price>35 ]’ )

 

12、获取title的lang=”en”且 price>35的***book的(***个)title

 

select @ data . query (‘//book[./title[@lang=”en”] and price>35 ]’ ). value (‘(book/title)[1]’ , ‘varchar(max)’ )

 

13、等价于10

 

select @ data . value (‘(//book[./title[@lang=”en”] and price>35 ]/title)[1]’ , ‘varchar(max)’ )

 

14、获取title的lang=”en”且 price>35的***book的(***个)title的lang属性

 

select @ data . value (‘((//book[@category=”WEB” and price>35 ]/title)[1]/@lang)[1]’ , ‘varchar(max)’ )

 

15、SQL Server XML中获取***本书的title

 

select Tab . Col . value (‘(book/title)[1]’ , ‘varchar(max)’ ) as title

 

from @ data . nodes (‘bookstore’ )as Tab (Col )

 

16、获取每本书的***个author

 

select Tab . Col . value (‘author[1]’ , ‘varchar(max)’ ) as title

 

from @ data . nodes (‘//book’ )as Tab (Col )

 

17、获取所有book的所有信息

 

  1. select   
  2. T . C . value ('title[1]' , 'varchar(max)' ) as title ,   
  3. T . C . value ('year[1]' , 'int' ) as year ,   
  4. T . C . value ('title[1]' , 'varchar(max)' )as title ,   
  5. T . C . value ('price[1]' , 'float' ) as price ,   
  6. T . C . value ('author[1]' , 'varchar(max)' ) as author1 ,   
  7. T . C . value ('author[2]' , 'varchar(max)' ) as author2 ,   
  8. T . C . value ('author[3]' , 'varchar(max)' ) as author3 ,   
  9. T . C . value ('author[4]' , 'varchar(max)' ) as author4   
  10. from @ data . nodes ('//book' ) as T (C ) 

18、获取不是日语(lang!=”jp”)且价格大于35的书的所有信息

 

select

 

  1. T . C . value ('title[1]' , 'varchar(max)' ) as title ,   
  2. T . C . value ('year[1]' , 'int' ) as year ,   
  3. T . C . value ('title[1]' , 'varchar(max)' )as title ,   
  4. T . C . value ('price[1]' , 'float' ) as price ,   
  5. T . C . value ('author[1]' , 'varchar(max)' ) as author1 ,   
  6. T . C . value ('author[2]' , 'varchar(max)' ) as author2 ,   
  7. T . C . value ('author[3]' , 'varchar(max)' ) as author3 ,   
  8. T . C . value ('author[4]' , 'varchar(max)' ) as author4   
  9. from @ data . nodes ('//book[./title[@lang!="jp"] and price>35 ]' ) as T (C ) 

 

以上的相关内容就是对18句话入门SQL Server XML的介绍,望你能有所收获。

【编辑推荐】

  1. SQL Server行转列的什么情况下被用?
  2. SQL Server获取表的容量很简单!
  3. SQL Server 2005两种快照隔离机制的不同之处
  4. SQL Server 2008 CDC功能的主要作用是什么?
  5. SQL Server 客户端的IP地址限制访问的破解

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/253707.html<

(0)
运维的头像运维
上一篇2025-04-30 00:57
下一篇 2025-04-30 00:58

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注