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('')
--這條語句的作用是按照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,'')
--這條語句的作用是把生成的xml前面的一個(gè)逗號(hào)去掉并轉(zhuǎn)化成標(biāo)量值
--最后用一個(gè)distinct去掉重復(fù)的記錄
相關(guān)文章
SQL Server修改標(biāo)識(shí)列方法 如自增列的批量化修改
最近在運(yùn)行系統(tǒng)時(shí)需要對(duì)所有服務(wù)器上數(shù)據(jù)結(jié)構(gòu)進(jìn)行批量修改某個(gè)字段的自增屬性改成非自增2012-05-05SQL Server 使用join all優(yōu)化 or 查詢速度
一個(gè)老項(xiàng)目,加載列表奇慢,超過10秒鐘, 主要涉及兩個(gè)表, user表,procuts表。因?yàn)樯婕岸鄬哟?,使用site字段保存目錄2020-09-09sql數(shù)據(jù)庫不能直接用instr函數(shù)
sql數(shù)據(jù)庫不能直接用instr函數(shù)...2007-01-01SQLServer 使用rand獲取隨機(jī)數(shù)的操作
這篇文章主要介紹了SQLServer 使用rand獲取隨機(jī)數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01SQLServer 數(shù)據(jù)庫開發(fā)頂級(jí)技巧
無論你的專業(yè)水平如何,從其他IT專家那里學(xué)習(xí)新的技巧與最佳實(shí)踐常常都是有益的。本文包含了我遇到過的SQL Server開發(fā)的高級(jí)技巧。希望其中的一些技巧能夠?qū)δ臄?shù)據(jù)庫開發(fā)及管理工作有所幫助。2009-07-07SQL Server 創(chuàng)建約束圖解(唯一 主鍵)
SQLServer中有五種約束,Primary Key約束、Foreign Key約束、Unique約束、Default約束和Check約束,今天使用SQL Server2008來演示下這幾種約束的創(chuàng)建和使用的方法2016-07-07