sql將查詢的多行結果使用逗號連接拼接成一行


語法如下:

 SELECT STUFF((select ','+c.MR_RolName from 查詢語句 FOR XML PATH('')),1,1,'');

解釋如下

1.STUFF函數。表示截取拼接函數

第一個參數表示原字符串

第二個參數表示從哪個坐標開始,參數從1開始

第三個參數表示截取幾位。

最后一個參數表示將什么內容插入到截取部分。

 

2.FOR XML  PATH('')

表示將查詢結果按照xml形式展示,path里面的內容表示父節點的名稱,這里的''表示為空

比如我在這里沒有給 ','+c.MR_RolName  添加自定義名稱,所以為空,加入定義了,比如myname,就會變成

<myname>','+c.MR_RolName</myname><myname>','+c.MR_RolName</myname>。。。

以一行展示,但是沒有定義的話,就是

','+c.MR_RolName ','+c.MR_RolName

 

 

那么就很清晰了。上面的語句,就是先把查詢結果換成逗號加參數的形式以一行展示,然后去除掉第一個逗號,賦值為''

 

如果還不是很清楚的話,可以參考其他博客:

http://www.360doc.com/content/20/0214/22/11881101_892070529.shtml

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM