组查询行会产生一个结果

时间:2016-03-15 14:12:25

标签: sql oracle

我需要进行一个查询,我得到结果并按逗号分隔一行。

例如,我有这个查询:

SELECT 
   SIGLA
FROM
 LANGUAGES

此查询返回以下结果:

SIGLA

ESP
EN
BRA

我需要通过这种方式将这个结果放在一行:

SIGLA

ESP,EN,BRA

任何人都可以帮助我吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

SELECT LISTAGG(SIGLA, ', ') WITHIN GROUP (ORDER BY SIGLA) " As "S_List" FROM LANGUAGES

应该是您需要的listagg序列

答案 1 :(得分:1)

SELECT LISTAGG( SIGLA,  ',' )   within group (order by SIGLA) as NewSigla FROM LANGUAGES

答案 2 :(得分:1)

如果要按照Oracle生成行的顺序将值组合在一起,那么:

SELECT LISTAGG( SIGLA, ',' ) WITHIN GROUP ( ORDER BY ROWNUM ) AS SIGLA
FROM   LANGUAGES;

如果您想按字母顺序排序,请将ORDER BY ROWNUM替换为ORDER BY SIGLA(或curiouslyORDER BY NULL)。