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