mssql sqlserver for xml EXPLICIT 用法详解说明
摘要:
下文通过举例的方式,详细说明"for xml EXPLICIT"关键字的用法,如下所示:
实验环境:sql server 2008 R2
EXPLICIT的功能:将数据表采用特定的形式返回xml数据。
create table test
(keyId int identity,
sort nvarchar(10),
info nvarchar(30)
)
insert into test(sort,info)
values('衣服','A号'),
('衣服','B号'),('衣服','C号'),
('鞋子','D'),('鞋子','E'),
('鞋子','F')
go ---使用explicit模式查询数据,必须指定特定的格式,sql脚本会根据特定模式生成相应的xml。
---使用explicit模式查询数据注意事项:
/*
返回第一列必须为:当前元素的行号,列名必须为"Tag",数据类型需为整型,
数值为1代表第一层元素,数值为2代表第二层元素
返回第二列为父级元素的编号,,列名必须为"Parent" ,Tag同Parent之间形成一个上下级的关系,
parent中必须有元素为null或0,代表顶层元素。
*/
-----例: SELECT
1 AS Tag,--Tag 列必须存在,1表示第一层节点
NULL AS Parent,--Parent 列必须存在, null代表第一级别
3 AS [node!1]
--"node!1"表示根节点 此种形式代表的是根节点。
--"node" 节点标签名称 元素名称
--"1" 节点层次
FOR XML EXPLICIT ---------------------------------------------------------
/*
[node!2!id!ELEMENT]
node 代表的是节点名称;
2代表的节点层次;
keyId 表示的是元素名称;.
ELEMENT 选项表示向 <node> 元素添加了
<keyId>元素子级,而不是添加属性
*/ SELECT
1 AS Tag,
NULL AS Parent,
8 AS [root!1],
88 AS [node!2!id!ELEMENT]
FOR XML EXPLICIT ---------------------
SELECT
1 AS Tag,
NULL AS Parent,
8 AS [root!1],
null AS [node!2!keyId!ELEMENT]
UNION ALL
SELECT
2 AS Tag,--表示第二层
1 AS Parent,--指向父节点 tag=1
NULL ,
keyId
FROM test ---WHERE keyId=1
FOR XML EXPLICIT SELECT
1 AS Tag,
NULL AS Parent,
8 AS [root!1],
null AS [node!2!keyId!ELEMENT],
null AS [nodeExtend!3!sort!ELEMENT]
UNION ALL
SELECT
2 AS Tag,--表示第二层
1 AS Parent,--指向父节点 tag=1
NULL ,
keyId,
null
FROM test WHERE keyId=1
union all
SELECT
3 AS Tag,--表示第二层
2 AS Parent,--指向父节点 tag=1
NULL ,
keyId,
sort
FROM test WHERE keyId=2 FOR XML EXPLICIT go
truncate table test
drop table test
转自:http://www.maomao365.com/?p=7463
mssql sqlserver for xml EXPLICIT 用法详解说明的更多相关文章
- SQLServer中merge函数用法详解
http://www.jb51.net/article/75302.htm Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Del ...
- Class.forName()用法详解
Class.forName()用法详解 标签: classjvmjdbc数据库documentationjava 2012-03-29 09:39 40414人阅读 评论(8) 收藏 举报 分类: ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- crossdomain.xml的配置详解
目录 1 简介 2 crossdomain.xml的配置详解 3 总结 1 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及 ...
- 1:CSS中一些@规则的用法小结 2: @media用法详解
第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下 at-rule ...
- SQL中CONVERT()函数用法详解
SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...
- 转载 LayoutInflater的inflate函数用法详解
http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...
- Hadoop生态圈-zookeeper的API用法详解
Hadoop生态圈-zookeeper的API用法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.测试前准备 1>.开启集群 [yinzhengjie@s101 ~] ...
- Android Fragment用法详解(2)--动态添加Fragment
在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...
随机推荐
- salesforce lightning零基础学习(十二) 自定义Lookup组件的实现
本篇参考:http://sfdcmonkey.com/2017/01/07/custom-lookup-lightning-component/,在参考的demo中进行了简单的改动和优化. 我们在ht ...
- springboot与ActiveMQ整合
前言 很多项目, 都不是一个系统就做完了. 而是好多个系统, 相互协作来完成功能. 那, 系统与系统之间, 不可能完全独立吧? 如: 在学校所用的管理系统中, 有学生系统, 资产系统, 宿舍系统等等. ...
- 【转载】wifi的两种工作模式
AP:即无线接入点,是一个无线网络的中心节点.通常使用的无线路由器就是一个AP,其它无线终端 可以通过AP相互连接. STA:即无线站点,是一个无线网络的终端.如笔记本电脑.PDA等. 1>工作 ...
- JS中如何理解浮点数?
本文由云+社区发表 相信大家在平常的 JavaScript 开发中,都有遇到过浮点数运算精度误差的问题,比如 console.log(0.1+0.2===0.3)// false.在 JavaScri ...
- 我们来说一说TCP神奇的40ms
本文由云+社区发表 TCP是一个复杂的协议,每个机制在带来优势的同时也会引入其他的问题. Nagel算法和delay ack机制是减少发送端和接收端包量的两个机制, 可以有效减少网络包量,避免拥塞.但 ...
- spring-boot-2.0.3启动源码篇一 - SpringApplication构造方法
前言 spring-boot-2.0.3应用篇 - shiro集成,实现了spring-boot与shiro的整合,效果大家也看到了,工程确实集成了shiro的认证与授权功能.如果大家能正确搭建起来, ...
- 记录学习新框架yii
最近打算提升自己的解决问题能力,于是打算从学习其他框架下手,让我们先去了解yii框架是如何运作的吧! https://www.yiichina.com/访问yii中文网站 让我们先把框架下载下来 点击 ...
- WPF DevExpress ChartControl用法
WPF常用的第三方控件集,DevExpress中ChartControl的使用 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="On ...
- Tree View控件(添加,移除,设置图标)
添加 父节点,并为父节点添加子节点 private void button1_Click(object sender, EventArgs e) { TreeNode tn1 = treeView1. ...
- Redis 私有云平台 CacheCloud
redis-cachecloud https://github.com/sohutv/cachecloud/wiki/3.%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6 ...