手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

SQL如何行转列合并字符串并用逗号隔开

时间:2024-10-17 10:14:17

1、打开微软SSMS数据库工具,登录后新建一个查询窗口。

SQL如何行转列合并字符串并用逗号隔开

2、先准备一些示例数据,新建一个表用于存储三国武将的阵营信息。执行以下语句:CREATE TABLE WJZY( WName VARCHAR(30), --姓名 Camp VARCHAR(30) --阵营 );

SQL如何行转列合并字符串并用逗号隔开

3、接着为WJZY表插入一些武将及所属阵营的数据,执行以下语句插入:INSERT INTO WJZY VALUES('通来瑕凌孙乾','蜀');INSERT INTO WJZY VALUES('庞统','蜀');INSERT INTO WJZY VALUES('黄盖','吴');INSERT INTO WJZY VALUES('曹仁','魏');INSERT INTO WJZY VALUES('陆逊','吴');INSERT INTO WJZY VALUES('张辽','魏');INSERT INTO WJZY VALUES('于禁','魏');INSERT INTO WJZY VALUES('赵云','蜀');INSERT INTO WJZY VALUES('甘宁','吴');

SQL如何行转列合并字符串并用逗号隔开

4、然后可以执行select * from WJZY 语句查询下刚才插入的数据,可以看到是每名武将一行的数据,下面要将其按所属阵营来合并。

SQL如何行转列合并字符串并用逗号隔开

5、合并使用的是FOR XML PATH 方法,执行select * from WJZY FOR XML PATH('') 可以看到使用该方法后会把所有的数据都以XML的方式合并到一行去了。

SQL如何行转列合并字符串并用逗号隔开

6、最后想办法将数据按阵营来合并数据即可,使用distinct方法区分阵营并用子查询的方式查询武将的姓名,执行以下语句可以看到武将姓名字符按阵营合并到一行了并用逗号涠濠樘赢隔开。select distinct camp as 阵营,(select wname+',' from WJZY a where a.camp=WJZY.camp FOR XML PATH('')) as 姓名from WJZY

SQL如何行转列合并字符串并用逗号隔开
© 手抄报圈