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
希望对你们有所帮助!