SQL中FOR XML PATH
类别:数据库 浏览量:633
时间:2014-7-20 SQL中FOR XML PATH
SQL中FOR XML PATH一 、FOR XML PATH实例介绍
1、兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下
hobbyID | hName |
1 | 爬山 |
2 | 游泳 |
3 | 美食 |
2、FOR XML PATH查询
(1)、SELECT * FROM hobby FOR XML PATH
结果:
<row>
<hobbyID>1</hobbyID>
<hName>爬山</hName>
</row>
<row>
<hobbyID>2</hobbyID>
<hName>游泳</hName>
</row>
<row>
<hobbyID>3</hobbyID>
<hName>美食</hName>
</row>
(2)、改变XML行节点的名称
SELECT * FROM hobby FOR XML PATH('MyHobby')
结果
原来的行节点<row> 变成了我们在PATH后面括号()中,自定义的名称<MyHobby>
<MyHobby>
<hobbyID>1</hobbyID>
<hName>爬山</hName>
</MyHobby>
<MyHobby>
<hobbyID>2</hobbyID>
<hName>游泳</hName>
</MyHobby>
<MyHobby>
<hobbyID>3</hobbyID>
<hName>美食</hName>
</MyHobby>
(3)、改变XML列节点的名称
<MyHobby>
<MyCode>1</MyCode>
<MyName>爬山</MyName>
</MyHobby>
<MyHobby>
<MyCode>2</MyCode>
<MyName>游泳</MyName>
</MyHobby>
<MyHobby>
<MyCode>3</MyCode>
<MyName>美食</MyName>
</MyHobby>
(4)、自定义输出方式
SELECT '[ '+hName+' ]' FROM @hobby FOR XML PATH('')
结果
[ 爬山 ][ 游泳 ][ 美食 ]
二、FOR XML PATH综合实例
1、增加一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的爱好!那么现在表结构如下:
stuID | sName | hobby |
1 | 张三 | 爬山 |
1 | 张三 | 游泳 |
2 | 李四 | 美食 |
3 | 李四 | 美食 |
4 | 王五 | 爬山 |
5 | 王五 | 游泳 |
2、查询学生表,显示所有学生的爱好的结果集
SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM (
SELECT sName,
(SELECT hobby+',' FROM student
WHERE sName=A.sName
FOR XML PATH('')) AS StuList
FROM student A
GROUP BY sName
) B
3、结果
标签:SQL
您可能感兴趣
- sqlserver中有几种锁定模式(SQL Server 开窗函数 Over代替游标的使用详解)
- mysql中命令大全(MySQL中ESCAPE关键字的用法详解)
- mysql如何使用临时表(MySQL中临时表的使用示例)
- SQL语句的几个好习惯
- mysql的字符串截取函数(MySQL实现字符串的拼接,截取,替换,查找位置的操作)
- mysql数据表怎么复制(MySQL 复制表的方法)
- idea的mysql如何连接(在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解)
- sqlserver常见函数(SQL Server之JSON 函数详解)
- mysql server安装图解教程(mysql容器之间的replication配置实例详解)
- mysql内部有4种常见日志(MySQL 慢日志相关知识总结)
- mysql 多表连接查询(MySQL多表查询的具体实例)
- win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法(win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法)
- mysql优化方案最新(记一次MySQL的优化案例)
- mysql利用数据库日志恢复数据(MySQL通过binlog恢复数据)
- sql版本号处理并发(SQL server高并发生成唯一订单号的方法实现)
- sql server查看之前的代码(SQL Server简单实现数据的日报和月报功能)
- 8月23日11时16分将迎处暑,逐渐进入气象意义上的秋天(8月23日11时16分将迎处暑)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
- 城市记忆之上海 最难忘的是老弄堂里的市井味道(城市记忆之上海)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
热门推荐
- vue项目有element插件(Vue Element前端应用开发之前端API接口的封装)
- python爬虫面试经历(搞定这套Python爬虫面试题面试会so easy)
- docker进入容器内部后的命令(Docker部署Consul配置过程解析)
- python将一个字符串逆序输出(Python字符串逆序的实现方法一题多解)
- apache跳转配置(Apache 的 order deny allow 设置说明)
- 微信小程序接口返回数据怎么弄(微信小程序页面返回传值的4种解决方案汇总)
- sqlserver数据库如何分页(SQL server分页的4种方法示例很全面)
- python函数使用方法高级用法(Python骚操作之动态定义函数)
- CSS中Position 的用法
- amaze如何创建作品(AmazeUI 网格的实现示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9