Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多个字段合并到一条记录中的SQL查询_Sql_Oracle - Fatal编程技术网

将多个字段合并到一条记录中的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