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

 

 希望对你们有所帮助!

posted @ 2020-09-04 11:19  幸运(● ̄(エ) ̄●)  阅读(1244)  评论(0编辑  收藏  举报
Document