说我有以下查询:
SELECT KEY,
BILL,
CODE
FROM TABLE1
INNER JOIN TABLE2 ON TABLE1.KEY = TABLE2.KEY
ORDER TABLE1.KEY;
这将输出以下表格
KEY | BILL | CODE
1234 | AAA | ABC
1234 | AAA | BCD
1234 | AAA | DEF
有没有办法查询返回记录:
1234 AAA ABC AAA BCD AAA DEF
?
我基本上想要为每个具有相同密钥的记录汇总每个输出。这是在Oracle。
答案 0 :(得分:3)
您可以使用listagg:
执行此操作SELECT KEY,
LISTAGG(BILL||' '||CODE, ' ') WITHIN GROUP (ORDER BY BILL||' '||CODE)
FROM TABLE1
INNER JOIN TABLE2
ON TABLE1.KEY = TABLE2.KEY
ORDER TABLE1.KEY
GROUP BY KEY