sql server 中合并某個(gè)字段值的實(shí)例
有表如下:

如何獲得如下結(jié)果:

解法
使用xml轉(zhuǎn)換
代碼如下:
CREATE TABLE body
(
ID int,
BODY nvarchar(20)
)
go
INSERT INTO body VALUES(1,'aaaa')
INSERT INTO body VALUES(2,'bbbb')
INSERT INTO body VALUES(1,'cccccc')
INSERT INTO body VALUES(3,'ddddd')
go
SELECT * FROM body
SELECT distinct a.ID,stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'') ASBODY
FROM
body a
--具體思路是這樣的:
SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')
--這條語(yǔ)句的作用是按照a中的ID查找body表中ID=a.ID的所有記錄,并把它轉(zhuǎn)換成一個(gè)xml(關(guān)于將查詢集轉(zhuǎn)換成xml的文章,你可以去看看)
stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'')
--這條語(yǔ)句的作用是把生成的xml前面的一個(gè)逗號(hào)去掉并轉(zhuǎn)化成標(biāo)量值
--最后用一個(gè)distinct去掉重復(fù)的記錄
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信