一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - sql里將重復行數據合并為一行數據使用逗號進行分隔

sql里將重復行數據合并為一行數據使用逗號進行分隔

2020-07-08 15:54mssql教程網 Sql Server

sql里將重復行數據合并為一行,將多行fieldname字段的內容串聯起來,用逗號分隔,接下來為大家介紹下詳細的實現sql語句,希望對你有所幫助

一.定義表變量

復制代碼 代碼如下:


DECLARE @T1 table
(
UserID int ,
UserName nvarchar(50),
CityName nvarchar(50)
);

 

復制代碼 代碼如下:


insert into @T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into @T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into @T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into @T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into @T1 (UserID,UserName,CityName) values (5,'e','上海')

 

復制代碼 代碼如下:


select * from @T1
-----最優的方式
SELECT CityName,STUFF((SELECT ',' + UserName FROM @T1 subTitle WHERE CityName=A.CityName FOR XML PATH('')),1, 1, '') AS A
FROM @T1 A
GROUP BY CityName
----第二種方式
SELECT B.CityName,LEFT(UserList,LEN(UserList)-1)
FROM (
SELECT CityName,(SELECT UserName+',' FROM @T1 WHERE CityName=A.CityName FOR XML PATH('')) AS UserList
FROM @T1 A
GROUP BY CityName
) B
stuff(select ',' + fieldname from tablename for xml path('')),1,1,'')


這一整句的作用是將多行fieldname字段的內容串聯起來,用逗號分隔。
for xml path是SQL Server 2005以后版本支持的一種生成XML的方式。
stuff函數的作用是去掉字符串最前面的逗號分隔符。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 皇上撞着太子妃的秘密小说 | 欧美va天堂va视频va在线 | 亚州在线 | 色婷婷综合和线在线 | 恩爱夫妇交换小说 | 亚洲视频在线一区二区三区 | 欧美高清3dfreexxxx性 | 无套内射在线观看THEPORN | 亚洲 小说 欧美 激情 另类 | a人片| 肉色欧美久久久久久久蜜桃 | 男人影院在线观看 | 美女黄板视频 | 日日操综合 | 96免费精品视频在线 | www.四虎.com | 亚洲激情在线视频 | 三级欧美在线 | 国产成人h视频在线播放网站 | 婷婷色综合网 | 婚色阿花在线全文免费笔 | 被高跟鞋调教丨vk | 日本高清在线精品一区二区三区 | 啊用力好大粗黑人小说 | 大伊香蕉在线精品不卡视频 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 天天天综合网 | 亚洲香蕉网久久综合影院3p | 国模孕妇季玥全部人体写真 | 国产一区二区三区毛片 | 91久久综合 | 95视频在线观看在线分类h片 | 草久热 | 国产视频二 | 日本一卡二卡3卡四卡无卡网址 | 欧美人曾交 | 国内精品久久久久久野外 | 国产色网 | 免费人成在线观看69式小视频 | 校花被老头夺去第一次动图 | 青青青久在线视频免费观看 |