SQL Server中使用SQL語句實(shí)現(xiàn)把重復(fù)行數(shù)據(jù)合并為一行并用逗號分隔
一.定義表變量
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
-----最優(yōu)的方式
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字段的內(nèi)容串聯(lián)起來,用逗號分隔。
for xml path是SQL Server 2005以后版本支持的一種生成XML的方式。
stuff函數(shù)的作用是去掉字符串最前面的逗號分隔符。
效果圖:
相關(guān)文章
阿拉伯?dāng)?shù)字轉(zhuǎn)大寫中文_財(cái)務(wù)常用sql存儲過程
需求:輸入阿拉伯?dāng)?shù)字,給出對應(yīng)的中文大寫,編寫為存儲過程或函數(shù)2008-10-10只有mdf文件的數(shù)據(jù)庫附加失敗的修復(fù)方法分享(置疑、只讀)
有時(shí)候因?yàn)槟承┰驍?shù)據(jù)庫只有mdf文件了,需要附加數(shù)據(jù)庫,會出現(xiàn)一些問題,大家可以參考下面的方法試試2012-02-02在SQL Server 2005中創(chuàng)建CLR存儲過程的詳細(xì)介紹
本篇文章是對在SQL Server 2005中創(chuàng)建CLR存儲過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06判斷字段是否被更新 新舊數(shù)據(jù)寫入Audit Log表中
客戶要求,要對一個(gè)敏感數(shù)據(jù)表進(jìn)行Audit跟蹤。如果記錄被更新時(shí),要把舊新保存起來,是誰更改了記錄,什么時(shí)候更新的等相關(guān)信息。還有一個(gè)主要問題就是客戶不確定具體要跟蹤那個(gè)字段,希望自己決定2012-01-01SQL?Server導(dǎo)入.mdf方法的錯(cuò)誤處理方法
導(dǎo)入mdf文件和ldf文件到數(shù)據(jù)庫是網(wǎng)站搬家或者是初學(xué)者學(xué)習(xí)源碼是必要的一步,下面這篇文章主要給大家介紹了關(guān)于SQL?Server導(dǎo)入.mdf方法的錯(cuò)誤處理方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05SQL Server的通用分頁存儲過程 未使用游標(biāo),速度更快!
使用SQL Server時(shí),分頁處理一直是個(gè)比較棘手的問題2010-11-11SQL server高并發(fā)生成唯一訂單號的方法實(shí)現(xiàn)
這篇文章主要介紹了SQL server高并發(fā)生成唯一訂單號的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02