实验数据:

Create table  xmldata
(name NVARCHAR(20),age int,sex NVARCHAR(5)
)INSERT INTO  xmldata VALUES (N'张三',12,N'男'),
(N'李四',12,N'女'),
(N'王五',12,N'男')SELECT * FROM xmldata

表数据转换XML

FOR XML PATH
--把表数据转换成XML数据--将数据存入属性中
SELECT name AS '@c1',age AS '@c2',sex AS '@c3'  FROM xmldata FOR XML PATH('XMLRow') , root('XMLData')
--PATH('XMLRow')定义行标签名称 , root('XMData')定义根标签名称,定义属性名称要加单引号和@

--将数据存入节点中
SELECT name AS c1,age AS c2,sex AS c3 FROM xmldata FOR XML PATH('XMLRow') , ROOT('XMLData')
--字段别称定义数据节点的名称 

解析XML数据

1、xml:        能认识元素、属性和值
    
2、xpath:    寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)
                
                语法格式,这些语法可以组合为条件:
                "."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代,
                "name"表示按名字查找,"@name"表示按属性查找
                
                "集合[条件]" 表示根据条件取集合的子集,条件可以是
                    数  值:数字,last(),last()-数字 等
                    布尔值:position()<数字,@name='条件',name='条件'
                条件是布尔值的时候可以合并计算:and or
    
3、xquery:    基于xpath标的准查询语言,sqlserver xquery包含如下函数
                exist(xpath条件):返回布尔值表示节点是否存在
                query(xpath条件):返回由符合条件的节点组成的新的xml文档
                value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一
                nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表

declare @data xml
set @data='
<bookstore>
<book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price>
</book>
<book category="CHILDREN"><title lang="jp">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>
</book>
<book category="WEB"><title lang="en">XQuery Kick Start</title><author>James McGovern</author><author>Per Bothner</author><author>Kurt Cagle</author><author>James Linn</author><author>Vaidyanathan Nagarajan</author><year>2003</year><price>49.99</price>
</book>
<book category="WEB"><title lang="cn">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price>
</book>
</bookstore>
'SELECT T.C.value('@category','varchar(max)') as category,
T.C.value('title[1]','varchar(max)') as title,
T.C.value('title[1]/@lang','varchar(max)') as lang,
T.C.value('author[1]','varchar(max)') as author,
T.C.value('author[2]','varchar(max)') as author1
FROM @data.nodes('/bookstore/book') as T(C)

转载于:https://www.cnblogs.com/JinweiChang/p/10461785.html

Sql Server XML相关推荐

  1. 转载---SQL Server XML基础学习之5--XQuery(query)

    本章写一些SQL Server XML的一些XQuery基础语法,主要讲的query查询语法 T-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集. XQuery 基于现有的 XPa ...

  2. SQL Server XML性能优化(Best Practices)

    1. XML数据模型 XML存储与处理查询的性能取决于数据库的设计与XML数据的结构与粒度.是否要使用XML数据模型,看你 是不是有半结构化的数据,需要保留文档结构与层次结构的标记语言数据,或可变的结 ...

  3. SQL Server XML转Table

    前言 在SQL Server中有时候我们需要传人一个Table过去,然后可以在存储过程中批量更新,批量的获取相应数据. 但存储过程的参数是固定,所以这里我们可以变通的传人xml类型的参数,然后在存储过 ...

  4. SQL Server XML数据解析(1)

    很久就想写总结一下SQL Server解析XML数据的常用方法了,下面就给出一些示例,有事没事,你也可以参照着示例自己动手尝试着实现一下自己的需求. 示例1:从XML中解析数据到表变量 DECLARE ...

  5. SQL Server XML格式化

    2019独角兽企业重金招聘Python工程师标准>>> 最近在项目中用到了SQL Server中的XML格式化,以下作了简单的总结. 以下使用PE_C_PersonnelArea这个 ...

  6. SQL Server XML 数据类型

    关系数据库一直给我们行和列的影响,通过扩展无非就是添加行记录,然后也有添加列.至于分表扩展等我就不多说了.XML作为一种数据的载体,是否适用于关系型数据库呢?我不敢定论,但是通过一系列项目的经验也让我 ...

  7. sql server XML中value(),exists(),nodes()方法

    原文链接:https://www.cnblogs.com/deng779256146/p/8637304.html T-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集. 本章将分析 ...

  8. 转载---SQL Server XML基础学习之7--XML modify() 方法对 XML 数据中插入、更新或删除...

    /*------------------------------------------------------------------------------+ #| = : = : = : = : ...

  9. SQL Server XML基础学习之5—XQuery(query)

    T-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集. XQuery 基于现有的 XPath 查询语言,并支持更好的迭代.更好的排序结果以及构造必需的 XML 的功能. 在前面我们已 ...

最新文章

  1. Nginx前端设置反向代理,后端Apache如何获取访客的真实IP,结合PHP。
  2. 基于 Kotlin 一行代码实现 android 导航栏 BottomBar
  3. 2020 年 Service Mesh 技术展望
  4. java preference,Java使用Preference类保存上一次记录的方法
  5. 转: SQL Server Analysis Service中Cube的结构
  6. vue写自定义指令(全局或者组件内部)
  7. JDBC连接Informix IDS
  8. Android:手把手教你打造可缩放移动的ImageView(下)
  9. java 通用对象_java 通用对象排序
  10. Ubuntu 16.04 修改Home目录下的 中文目录 为英文目录
  11. 毕业设计 STM32单片机的智能公路收费站系统 - 物联网
  12. AngularJs基础视频教程 大漠穷秋AngularJs基础教程 AngularJs入门教程
  13. PHP面向对象开发:类成员的相关知识
  14. iSCSI target介绍及LIO实操入门
  15. M个苹果放到N个相同盘子和N个不同盘子的解法
  16. 【PyTorch】4 姓氏分类RNN实战(Simple RNN)——18 种起源语言的数千种姓氏分类
  17. 第二讲——识别加密算法
  18. 技术导航网站源码_qq技术导航_小刀娱乐网源码
  19. shell脚本编程学习笔记8(XDL)——流程控制和循环
  20. 三维地图前端arcgis_【ArcGIS JS API + eCharts系列】实现二、三维网络路径图的绘制...

热门文章

  1. 微软推出新逆天开源语言Bosque,告别 for 循环,提高开发效率!
  2. 台式机安装系统时区分BIOS与UEFI
  3. 图像形态学操作—腐蚀膨胀深入
  4. Python3高并发定时更新任务进程池和线程池的使用
  5. 华为p30是不是鸿蒙芯片,鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史...
  6. 华为交换机同步linux时间服务器,华为s5720s系列交换机同步时间
  7. idea每次新建项目都要重新配置maven
  8. 014_Spring事务
  9. java.lang包怎么用_java.lang.io包的使用
  10. Android绘制自定义控件,Android自定义控件绘制基本图形基础入门