SQL 列轉行 分組去重並合並多條記錄


繼上篇《SQL 列轉行 合並多條記錄》后,有網友反饋新的需求還是不太會用。

現舉例說明

一,網友需要如下的效果:

       

 

其實,這個需求依然可以我上篇的方法進行解答,但為了實現分組,需要distinct group1,同時,為了根據key1,key2,key3是否相同進行分組,所以要用where進行連接。

語法格式:select .....from t1 where key1=a.key1 and key2=a.key2... for xml path('')

二,進入正題,代碼如下:

 select distinct group1,key1,key2,key3,
(select concat1+',' from concat where group1=a.group1 and key1=a.key1 and key2=a.key2 and key3=a.key3 for XML PATH('') ) as concat1,
(select concat2+',' from concat where group1=a.group1 and key1=a.key1 and key2=a.key2 and key3=a.key3 for XML PATH('') ) as concat2,
(select concat3+',' from concat where group1=a.group1 and key1=a.key1 and key2=a.key2 and key3=a.key3 for XML PATH('') ) as concat3
 from concat a

 

三、效果如下:

 

說得不好,歡迎大家拍磚。

 


免責聲明!

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



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