程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql server 中合並某個字段值的實例

sql server 中合並某個字段值的實例

編輯:關於SqlServer

有表如下:

如何獲得如下結果:

解法

使用xml轉換

代碼如下:

復制代碼 代碼如下:
 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的所有記錄,並把它轉換成一個xml(關於將查詢集轉換成xml的文章,你可以去看看) 

 stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'') 

 --這條語句的作用是把生成的xml前面的一個逗號去掉並轉化成標量值 

 --最後用一個distinct去掉重復的記錄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved