Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Database_Oracle - Fatal编程技术网

Sql 如何对来自多个记录的结果进行分组和连接?

Sql 如何对来自多个记录的结果进行分组和连接?,sql,database,oracle,Sql,Database,Oracle,我有一个类似这样的问题: select a.id, b.value from a left join b on a.name = b.name where a.id = 12345; 我得到的结果是 id value -------- 12345 value1 12345 value2 然而,我希望得到这样的结果: id value -------- 12345 value1,value2 它通过逗号将所有值按id分组 我不知道如何做到这一点。任何提示都会有帮助。您正在查找listag()

我有一个类似这样的问题:

select a.id, b.value from a
left join b
on a.name = b.name
where a.id = 12345;
我得到的结果是

id value
--------
12345 value1
12345 value2
然而,我希望得到这样的结果:

id value
--------
12345 value1,value2
它通过逗号将所有值按id分组


我不知道如何做到这一点。任何提示都会有帮助。

您正在查找
listag()

select a.id, listagg(b.value, ',') within group (order by b.value)
from a left join
     b
     on a.name = b.name
where a.id = 12345
group by a.id;