将多行转换为单个数组
Convert multiple rows into single array
我当前的代码returnssingle-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'));
子查询 returns 每列作为一行。添加 LIMIT 1
时,我几乎得到了想要的结果。
如何选择这些行并将它们添加到数组中?
运行 查询的预期结果应该是:
SELECT o.col_name1, o.col_name2... o.col_nameN FROM table_name As o
如果你想要一个数组,我会推荐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'));
我当前的代码returnssingle-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'));
子查询 returns 每列作为一行。添加 LIMIT 1
时,我几乎得到了想要的结果。
如何选择这些行并将它们添加到数组中?
运行 查询的预期结果应该是:
SELECT o.col_name1, o.col_name2... o.col_nameN FROM table_name As o
如果你想要一个数组,我会推荐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'));