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)于將查詢(xú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ù)的記錄
相關(guān)文章
SQLServer恢復(fù)表級(jí)數(shù)據(jù)詳解
這篇文章主要介紹了SQLServer中用于快速恢復(fù)表,而不是庫(kù),但是切記,防范總比亡羊補(bǔ)牢好,需要的朋友可以參考下2014-08-08
SQL?Server?2022?Enterprise安裝部署的實(shí)現(xiàn)步驟
SQL?Server?2022是一款功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了穩(wěn)定可靠的數(shù)據(jù)存儲(chǔ)和管理功能,本文主要介紹了SQL?Server?2022?Enterprise部署的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
SQL SERVER 數(shù)據(jù)庫(kù)備份的三種策略及語(yǔ)句
這篇文章主要介紹了SQL SERVER 數(shù)據(jù)庫(kù)備份的三種策略及語(yǔ)句,需要的朋友可以參考下2017-02-02
SQL where條件和jion on條件的詳解及區(qū)別
這篇文章主要介紹了SQL where條件和jion on條件的詳解及區(qū)別的相關(guān)資料,這里舉例說(shuō)明該如何區(qū)分,需要的朋友可以參考下2016-12-12
SQLServer存儲(chǔ)過(guò)程創(chuàng)建和修改的實(shí)現(xiàn)代碼
這篇文章主要介紹了SQLServer存儲(chǔ)過(guò)程創(chuàng)建和修改的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-05-05
動(dòng)態(tài)給表添加刪除字段并同時(shí)修改它的插入更新存儲(chǔ)過(guò)程
有一個(gè)表,用戶需要在后臺(tái)操作它,希望能對(duì)它動(dòng)態(tài)進(jìn)行添加刪除字段2011-11-11
SQLSERVER啟動(dòng)不起來(lái)(錯(cuò)誤9003)的解決方法分享
這篇文章主要介紹了SQLSERVER因錯(cuò)誤9003啟動(dòng)不起來(lái)的解決方法,大家參考使用吧2013-11-11
SQL Server 復(fù)制需要有實(shí)際的服務(wù)器名稱(chēng)才能連接到服務(wù)器
今天在做sql Server 2005的實(shí)驗(yàn)的時(shí)候碰到的問(wèn)題,問(wèn)題描述很清楚,懷疑是我以前給計(jì)算機(jī)修改了名稱(chēng)而導(dǎo)致的.可以用select @@servername和select serverproperty ('servername')對(duì)照一下,兩個(gè)的結(jié)果是否一樣2012-06-06

