Oracle 使用LISTAGG()函數拼接數據庫表字段


基礎的用法如下:
LISTAGG(1,2) WITHIN GROUP( ORDER BY 3)
1:需要拼接的數據表中的字段
2:以什么字符分割,例如逗號,分號等字符
2與3是相同的字段
它的用法就像聚合函數一樣,通過Group by語句,把每個Group的一個字段,拼接起來。
下面舉個例子:
(1)有如下圖一個表里面存了三組數據,只有DEMO字段不同,我們想把他以一條數據表達 [A | B | C;D;E]
SELECT *FROM TestTempDemo

 

 (2)我們使用LISTAGG()函數就很容易做到將DEMO字段拼接起來,如下圖

SELECT  LISTAGG(T.DEMO,';') WITHIN GROUP (ORDER BY T.DEMO)AS DEMO FROM TestTempDemo T

 

 (3)但是我還需要把其他值也一起查出來,那么就需要整體查詢了,如下圖

SELECT DISTINCT T.TEST,T.TEMP,(SELECT  LISTAGG(T.DEMO,';') WITHIN GROUP (ORDER BY T.DEMO)AS DEMO FROM TestTempDemo T) AS DEMO  FROM TestTempDemo T

 

 希望對你們有所幫助!


免責聲明!

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



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