旧结果
Column_Name
A
B
C
D
新要求结果
Column_Name
'A', 'B', 'C', 'D'
限制,(计数未知。可以是A,B,C或A,B,C,D,E等。
答案 0 :(得分:1)
从字面上考虑你的问题,你有一个查询返回一个行可变行数的列,比如说
select 'A' column_name from dual union all
select 'B' column_name from dual union all
select 'C' column_name from dual union all
select 'D' column_name from dual
并且您需要将结果放在一行中,其中一列包含由''
包装的原始查询返回的值的串联;在您的示例中,您需要:
Column_Name
'A', 'B', 'C', 'D'
如果这是正确的,您可能只需要listagg
:
select listagg('''' || column_name || '''', ', ') within group ( order by column_name)
from (
select 'A' column_name from dual union all
select 'B' column_name from dual union all
select 'C' column_name from dual union all
select 'D' column_name from dual
) yourQuery
答案 1 :(得分:0)
如果您希望列出某个列中彼此之后的所有值,可以使用LISTAGG
。
例如:
SELECT LISTAGG(Column_Name, ', ') WITHIN GROUP (ORDER BY Column_Name) "Column_Listing"
FROM TableA;