Старый РезультатOracle строки в колонке
Column_Name
A
B
C
D
Новый требуемый результат
Column_Name
'A', 'B', 'C', 'D'
Ограничения (Count неизвестно. Может быть, A, B, C или A, B, C, D, E и так далее.
Старый РезультатOracle строки в колонке
Column_Name
A
B
C
D
Новый требуемый результат
Column_Name
'A', 'B', 'C', 'D'
Ограничения (Count неизвестно. Может быть, A, B, C или A, B, C, D, E и так далее.
Учитывая ваш вопрос буквально, у вас есть запрос, возвращающий один столбец с переменным числом строк, скажут
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
Если вы хотите, чтобы сделать список всех значений в определенном столбце за каждый другой вы можете использовать LISTAGG
.
Например:
SELECT LISTAGG(Column_Name, ', ') WITHIN GROUP (ORDER BY Column_Name) "Column_Listing"
FROM TableA;
SQL-запрос возвращает набор результатов с фиксированным числом определенных столбцов. Вы можете это сделать, но для этого требуется динамический SQL. –
Если вы ищете, что каждая строка будет ее собственным столбцом, @GordonLinoff верен. Если вы хотите просто заполнить значения в одном поле, 'LISTAGG' может работать для вас. –