聊聊 SQL 中的For Xml Path

​最近出的每日一题里面,有一道是关于合并同类型数据为一行的题,使用SQL Server 2017版本及以上的直接使用STRING_AGG()函数即可,但是2016版本以下是没有这个功能的,那该如何求解?

今天就给大家介绍一下FOR XML PATH,它就是用来处理低版本数据库中数据合并的,是一个比较古老的功能了,新版本中也依然还能使用。

FOR XML PATH是什么

FOR XML PATH 是将查询结果集以XML形式展现,将多行的结果,展示在同一行。

我们用实例来给大家介绍它的神奇之处。

创建测试数据

我们创建一个统计学生爱好的表

CREATE TABLE Stu_Hobby(

Stu_Name NVARCHAR(20),--姓名

Age INT,--年龄

Hobby NVARCHAR(20) --爱好

)

INSERT INTO Stu_Hobby

VALUES ( N张三,19,N踢足球),

( N张三,19,N打篮球),

( N张三,19,N游泳),

( N李四,21,N看电影),

( N李四,21,N阅读),

( N王五,22,N唱歌),

( N王五,22,N玩游戏),

( N马六,19,N踢足球),

( N赵七,20,N爬山),

( N赵七,20,N跑步)

查询学生爱好表Stu_Hobby里面的数据:

聊聊 SQL 中的For Xml Path插图亿华云

使用方法介绍

测试数据建立好后,我们开始对这个表里面的数据进行查询,并使用上FOR XML PATH。

SELECT

THE END
Copyright © 2024 亿华云