实验数据:

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)

Sql Server XML的更多相关文章

  1. Sql Server xml 类型字段的增删改查

    1.定义表结构 在MSSM中新建数据库表CommunicateItem,定义其中一个字段ItemContentXml 为xml类型 2.编辑表数据,新增一行,发现xml类型不能通过设计器录入数据. 需 ...

  2. SQL SERVER XML 学习总结

    SQL  SERVER  XML  学习总结 最新的项目任务要做一个数据同步的功能,这些天都在做技术准备,主要是用到了微软的Service Broker技术,在熟悉使用该技术的同时,又用到了Sql s ...

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

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

  4. SQL Server XML数据解析

    --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <In ...

  5. SQL Server XML 查询

    [参考1] 18个小实例入门SQLServer XML查询 [参考2] 转载---SQL Server XML基础学习之<5>--XQuery(query)

  6. SQL Server XML转Table

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

  7. (轉載)sql server xml字段的操作

    原文轉自:http://blog.csdn.net/hliq5399/article/details/8315373 另外可參考:https://msdn.microsoft.com/en-us/li ...

  8. SQL Server ->> XML方法

    1. 得到XML类型中某个节点下子节点的数量 DECLARE @xml xml SET @xml = ' <Parameters> <Parameter name = "p ...

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

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

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

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

随机推荐

  1. TCPWrap的使用配置

    参考地址: http://www.softpanorama.org/Net/Network_security/TCP_wrappers/index.shtml http://generationip. ...

  2. Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别

    记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...

  3. 翻译:SET PASSWORD语句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:SET PASSWORD的译文. 原文:https://mariadb.com/kb/en/library/set-password/我提交到MariaDB官方手册的译文 ...

  4. [转] JSON Web Token in ASP.NET Web API 2 using Owin

    本文转自:http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/ ...

  5. final关键字。

    final关键之代表最终,不可变的. 用法: 1.修饰类 2.修饰方法 3.修饰局部变量. 4.修饰成员变量. 修饰类: 不能有任何子类.(太监类) public final class MyClas ...

  6. WebBrowser引用IE版本问题,更改使用高版本IE

    做了一个Winform的项目.项目里使用了WebBrowser控件.以前一直都以为WebBrowser是直接调用的系统自带的IE,IE是呈现出什么样的页面WebBrowser就呈现出什么样的页面.其实 ...

  7. double在输出为字符串的几种方法效率测试

    测试结果: double->none 366msdouble->long 161msdouble->long2 188msdouble->format 564msdouble- ...

  8. [javaEE] Tomcat的安装与配置

    下载压缩包,解压缩,好,安装完成 进入解压目录/bin/下面,找到startup.bat,双击,此时如果报错,那么就是没有设置环境变量JAVA_HOME,进入环境变量去设置,JAVA_HOME指向jd ...

  9. [android] 显示意图激活另外一个activity

    可以使用跳转的方式类似javaweb来实现界面转换 显示意图就是必须要指定开启组件的具体信息,包名,组件名,组件的class 新建一个类TwoActivity ,继承Activity类,重写onCre ...

  10. JavaSE-基础语法(四)-javaSE进阶

    javaSE进阶 三.异常 四.多线程 五.Lambda表达式 六.IO流 七.网络编程 八.新特性 13.异常体系14.异常分类15.声明抛出捕获异常16.自定义异常17.线程概念18.线程同步19 ...