SQL中for xml path 的用法

1. 用法

是一种将查询结果转换为 XML 格式的方法。它可以将查询结果中的每一行转换为一个 XML 元素,并且可以指定元素的名称和属性。

2. 应用示例

有一张学生选修课程的表,如下图所示

希望整合成下图所示效果

sql 复制代码
--建表
if object_id('StudentInfo','u') is not null drop table StudentInfo
go
create table StudentInfo(
    学生姓名  varchar(10)
    ,选修课程      varchar(10)
)
go
insert into StudentInfo
values
('张三','拉丁')
,('张三','围棋')
,('李四','排球')
,('赵五','太极')
,('赵五','拉丁')
,('赵五','街舞')
go
select * from StudentInfo
--查询
select distinct a.学生姓名,
       stuff(  (
         select  ', ' + 选修课程
         from StudentInfo b
         where a.学生姓名= b.学生姓名
          for xml path ('') ),1,1,'') as 选修课程
from StudentInfo a
相关推荐
Francek Chen3 分钟前
【大数据存储与管理】分布式数据库HBase:06 HBase编程实践
大数据·数据库·hadoop·分布式·hbase
lifewange22 分钟前
Java 自动化测试参数化实现
java·数据库·sqlserver
m0_7447249331 分钟前
Oracle单行函数学习
数据库·oracle
rainy雨38 分钟前
质量工具系统功能详解:针对检验效率低与追溯困难场景的质量工具应用方案
java·大数据·数据库·人工智能·精益工程
geyasi39 分钟前
【Flask】四、flask连接并操作数据库
数据库·python·flask
金仓数据库40 分钟前
浙人医的国产软硬一体诊疗 | 电科金仓携手迈瑞打通PACS链路
大数据·数据库·人工智能
荒川之神1 小时前
Oracle 开窗函数 专项练习文档
数据库·oracle
Java面试题总结1 小时前
WAF 误杀了正常请求怎么补数据?CloudFront + Lambda@Edge 双函数架构实战
数据库·架构·edge
weixin_704266051 小时前
Redis集群架构与搭建全攻略
数据库·redis·架构
二进制_博客1 小时前
使用Datax批量将mysql数据导入hive
数据库·hive·mysql