2019独角兽企业重金招聘Python工程师标准>>>

最近在项目中用到了SQL Server中的XML格式化,以下作了简单的总结。
以下使用PE_C_PersonnelArea这个表来进行展示
一般我们将表中数据输出到XML,如果没有结构要求的话可以简单地使用 FOR XML AUTO
SELECT * FROM PE_C_PersonnelArea FOR XML AUTO
我们点击得到的结果就可以看到经过格式化的XML
--还有一个简单的方法就是使用 FOR XML RAW
SELECT * FROM PE_C_PersonnelArea FOR XML RAW
输出的是每行以row为节点,每列为同名的节点属性的XML
我们可以通过给RAW添加参数改变节点名
SELECT * FROM PE_C_PersonnelArea FOR XML RAW('Areas')
或者给列添加一个别名来改变节点属性名
SELECT PersonnelAreaID 'ID',PersonnelArea 'Name' FROM PE_C_PersonnelArea FOR XML RAW('Areas')
以上是两个方法都是较为简单得把表格式化为XML,但有时候需求会更加复杂,而简单地改变节点名和属性名是满足不了要求的。
而接下来要讲的方法就是更好得自定义XML的格式。
使用FOR XML PATH,ROOT格式化XML
SELECT * FROM PE_C_PersonnelArea FOR XML PATH
通过给PATH添加参数改变节点名,如果传入空值('')将去掉节点
SELECT * FROM PE_C_PersonnelArea FOR XML PATH('Areas')
SELECT * FROM PE_C_PersonnelArea FOR XML PATH('')
我们同样可以指定属性名
SELECT PersonnelAreaID '@ID',PersonnelArea '@Name' FROM PE_C_PersonnelArea FOR XML PATH('Area')
因为使用这种方法是需要按照XPath来格式化XML的,所以属性是需要加上@的哦,如果没有加上的话就会变成Area的子节点了。
SELECT PersonnelAreaID 'ID',PersonnelArea 'Name' FROM PE_C_PersonnelArea FOR XML PATH('Area')
按照XPath,我们其实可以改写成以下的样子,结果是一样的
SELECT PersonnelAreaID 'Area/@ID',PersonnelArea 'Area/@Name' FROM PE_C_PersonnelArea FOR XML PATH('')
对了,大家有没有发现一只到现在我们看到输出的XML少了根节点?我们需要在上面的基础上添加ROOT,操作如下
SELECT PersonnelAreaID '@ID',PersonnelArea '@Name' FROM PE_C_PersonnelArea FOR XML PATH('Area'),ROOT('Areas')
FOR XML PATH除了输出XML之外,还有很有意思的用法。
例如输出特殊格式
SELECT '地区分类',(SELECT '[' + PersonnelArea + ']' FROM PE_C_PersonnelArea FOR XML PATH(''))

转载于:https://my.oschina.net/venoriee/blog/385961

SQL Server XML格式化相关推荐

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

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

  2. 不一样的 SQL Server 日期格式化

    不一样的 SQL Server 日期格式化 Intro 最近统计一些数据,需要按天/按小时/按分钟来统计,涉及到一些日期的格式化,网上看了一些文章大部分都是使用 CONVERT 来转换的,SQL Se ...

  3. SQL SERVER 日期格式化、日期和字符串转换

    SQL SERVER 日期格式化.日期和字符串转换 sql server 中怎么把字符串转化为日期? 1. convert(datetime,'YYYY-MM-DD HH24:MI:SS') 2. c ...

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

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

  5. SQL Server XML转Table

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

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

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

  7. Sql Server日期格式化

    Sql Server 中一个非常强大的日期格式化函数 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CON ...

  8. SQL Server XML 数据类型

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

  9. SQL server脚本格式化专业工具

    Sql Pretty Printer 主要针对SQL server的SQL脚本进行格式化,没有复杂的设置,使用真的很方便,妈妈再也不用担心我的眼睛了. 以前写的脚本总是堆在一起,密密麻麻看起来很不清楚 ...

最新文章

  1. 【虚拟化实战】VM设计之一vCPU
  2. python的目的及应用_python Django中的apps.py的目的是什么_python_脚本之家
  3. 使用verilog设计实现QR分解
  4. mysql主从进行扩展_MySQL 主从扩展
  5. 基于时空相关属性模型的公交到站时间预测算法
  6. 《天天数学》连载29:一月二十九日
  7. HTML静态网页--JavaScript-语法
  8. matlab运行C程序
  9. 常用汉字3500——文字识别数据准备
  10. java访问数据库视图_java 访问数据库视图
  11. 高速列车横向17自由度模型
  12. win10桌面的计算机图标怎么删除,win10系统桌面图标小箭头去掉的操作步骤
  13. 使用conda安装pytorch时出现问题CondaSSLError: OpenSSL appears to be unavailable on this machine.
  14. Java三部曲(二)JavaWeb
  15. element-ui 表格吸底固定最后一行
  16. 将传统书房变成数字书房 数字书房DIY
  17. 使用SwiftyJSON解析JSON
  18. java多元_Java多元运算符-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....
  19. C#学习笔记——观察者模式及实现
  20. 如何制作动画效果的文字图片?教你一键合成gif动画

热门文章

  1. 在php中isset什么意思,php – isset()和__isset()之间有什么区别?
  2. 面试必考题:基本95%的面试都会被问到的?
  3. 技术提升为管理,最重要的能力是什么?
  4. 接口测试-接口定义功能-前端-实现动态增删表单
  5. 搭建有效的可复用测试用例,以及后期使用与管理
  6. 判断包含字符当中包含小数点_Python|提取包含指定文本的行到一个文本文件(字符串或正则)...
  7. php 常用时间处理函数,PHP date函数常用时间处理方法_PHP
  8. python cocos2dx_cocos2dx 3.0 环境搭建、项目编译于运行
  9. SVM-支持向量机(code实现)
  10. php 日历设置当月节假_带节假日设置的日历