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
相关推荐
时光追逐者19 小时前
一款免费、简单、高效的在线数据库设计工具
数据库·mysql·oracle·sql server
another heaven20 小时前
【软考 2026 最新版 NoSQL 数据库全分类】
数据库·nosql
满天星830357720 小时前
【MySQL】表的操作
linux·服务器·数据库·mysql
yashuk20 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
F1FJJ20 小时前
VS Code 里管理 PostgreSQL,有哪些选择?主流扩展横向对比
网络·数据库·postgresql·容器
Bdygsl20 小时前
MySQL(8)—— 事务
数据库·mysql
IvorySQL20 小时前
直播回顾| PostgreSQL 18.3 x IvorySQL 5.3:开启 AI 数据库新纪元
数据库·postgresql·开源
编程之升级打怪20 小时前
数据库的实时同步和异步同步
数据库
captain37620 小时前
MySQL增删改查
数据库·mysql
人道领域20 小时前
Day | 12 【苍穹外卖 :导出Excel数据表】
java·后端·sql·servlet·mvc·intellij-idea