Конвертировать несколько строк в один массив - PullRequest
0 голосов
/ 24 января 2020

Мой текущий код возвращает single-row error

 SELECT TO_ARRAY(
SELECT 'o' || '.' || c.column_name FROM INFORMATION_SCHEMA.COLUMNS As c WHERE table_name = 'TABLE_NAME' AND  c.column_name NOT IN('COL_NAME'));

Подзапрос возвращает каждый столбец в виде строки. При добавлении LIMIT 1 я получаю практически желаемый результат. Как выбрать эти строки и добавить их в массив?

Ожидаемый результат выполнения запроса должен быть:

SELECT o.col_name1, o.col_name2... o.col_nameN FROM table_name As o

1 Ответ

1 голос
/ 24 января 2020

Если вам нужен массив, я бы порекомендовал array_agg():

SELECT ARRAY_AGG('o' || '.' || c.column_name)
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.table_name = 'TABLE_NAME' AND
      c.column_name NOT IN('COL_NAME'));
...