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
相关推荐
这个DBA有点耶3 小时前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G3 小时前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备4 小时前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远4 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
漂着的圆木5 小时前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
2601_962218615 小时前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren6 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安6 小时前
MySQL-触发器
数据库·mysql
白远山6 小时前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro6 小时前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理