聊聊 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里面的数据:
使用方法介绍
测试数据建立好后,我们开始对这个表里面的数据进行查询,并使用上FOR XML PATH。
SELECT
THE END