1. 程式人生 > >SQL - for xml path('') 實現多行合並到一行, 並帶有分隔符

SQL - for xml path('') 實現多行合並到一行, 並帶有分隔符

soft idt eight img 分享 mage 我們 .com jpg

docs.microsoft.com 鏈接: SQL

一個應用場景與FOR XML PATH應用

首先呢!我們在增加一張學生表,列分別為(stuID,sName,hobby),stuID代表學生編號,sName代表學生姓名,hobby列存學生的愛好!那麽現在表結構如下:

技術分享圖片

這時,我們的要求是查詢學生表,顯示所有學生的愛好的結果集,代碼如下:

SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM (
SELECT sName,
(SELECT hobby+, FROM student 
  WHERE sName
=A.sName FOR XML PATH(‘‘)) AS StuList FROM student A GROUP BY sName ) B

結果如下:技術分享圖片

SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby 就是來去掉逗號

SQL - for xml path('') 實現多行合並到一行, 並帶有分隔符