将多个字段合并到一条记录中的SQL查询
假设我有以下问题:将多个字段合并到一条记录中的SQL查询,sql,oracle,Sql,Oracle,假设我有以下问题: 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 是否有一种查询方法
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中实现的。您可以使用:
表1和表2的post数据我尝试了这个方法,结果得到了一个超大的字符串连接。尝试将每个字段转换为\u clob,但仍然失败。是的,不能对超过4000个字符的行使用此方法。另一方面,如果你有这么大的行,也许你不应该使用连接。。。
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