sqlserver for xml EXPLICIT使用实例讲解
时间:2018-09-18
本文章向大家介绍通过举例的方式详细说明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
- golang 函数定义及其接口实例
- 分享两种圣诞节雪花特效JS代码(网站下雪效果)
- React 移动 web 极致优化
- golang 高效字符串拼接
- Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程
- golang 使用时间通过md5生成token
- golang中对map操作类
- Nginx在线服务状态下平滑升级或新增模块的详细操作记录
- 【Dev Club分享】微信读书iOS性能优化
- [svn: E155004]svn update报database is locked错误的解决办法
- WordPress高亮插件:Crayon Syntax Highlighter加载优化
- 深入理解 ButterKnife,让你的程序学会写代码
- JS+CSS让网站嗨起来,博客要被玩坏了!
- Linux系统zip压缩命令详细参数,附文件排除选项的正确用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Redis数据结构-跳跃表
- Canvas系列(10):动画初级
- Canvas系列(5):绘制文字
- 详解Keepalived安装与配置
- Redis数据结构-字典
- 编程体系结构(07):JavaEE之Web开发
- Centos 6.5环境实现本地局域网搭建YUM的方法【基于HTTP】
- Doug Lea在J.U.C包里面写的BUG又被网友发现了。
- CentOs 7.*中配置安装phpMyAdmin的完整步骤记录
- Linux中怎么通过PID号找到对应的进程名及所在目录方法
- Apache环境下配置多个ssl证书搭建多个站点的方法
- 详解Linux手动释放缓存的方法
- 详解Centos7源码编译安装 php7.2之生产篇
- Centos7利用内存优化磁盘缓存读写速度的方法
- Redis过期策略和数据淘汰机制