Sql 使用“断开”命令时连接字段

Sql 使用“断开”命令时连接字段,sql,oracle,sqlplus,string-aggregation,Sql,Oracle,Sqlplus,String Aggregation,我构建了一个命令,它使用BREAK-ON命令停止重复字段名的输出。例如: f.name | f.value f.name | f.value f.name | f.value 变成: f.name | f.value | f.value | f.value 有没有办法将此输出设置为: f.name | f.value,f.value,f.value 在某些情况下,与关联的f.name字段有20多个f.value 输出最终将用于导入到其他位置,因此我尝试使输出尽可

我构建了一个命令,它使用BREAK-ON命令停止重复字段名的输出。例如:

f.name | f.value
f.name | f.value
f.name | f.value
变成:

f.name | f.value
       | f.value
       | f.value
有没有办法将此输出设置为:

f.name | f.value,f.value,f.value
在某些情况下,与关联的f.name字段有20多个f.value


输出最终将用于导入到其他位置,因此我尝试使输出尽可能友好。

您不是在寻找SQL*Plus命令,而是在寻找字符串聚合

假设您当前的查询是:

select name, value from my_table
您可以按如下方式更改它以获得所需的结果。包含DISTINCT以消除列表中的重复结果

select name, listagg(value, ', ') within group (order by value) as value
  from ( select distinct name, value from my_table )
 group by name

仅在11.2版本中发布,如果您使用的是Oracle的早期版本,则可以使用未记录的函数WM_CONCAT()或中概述的用户定义函数STRAGG()。

太棒了!非常感谢您的回复。我要试一试。谢谢