【发布时间】:2020-04-02 20:26:54
【问题描述】:
我的目标是将查询结果加载到表中,以存储给定表的列名的有序列表。 (然后,我将使用将传递给动态 sql 的 listagg 函数将所有这些列名填充到单个列中。)我无法将其加载到表中的原因是因为系统表查询在领导节点上计算,但此查询不在领导节点上执行,也没有办法强制它在领导节点上执行。任何想法如何让它成功执行?
create table temp_columns
as
select
cast(t1.columnname as varchar) as columname
--,
--cast(t2.ordinal_position as integer) as ordinal_position
FROM
(
SELECT
cast(schemaname as varchar) as schemaname,
cast(tablename as varchar) as tablename,
cast("column" as varchar) as columnname
FROM PG_TABLE_DEF
WHERE
schemaname = 'schema1'
and tablename = 'table1'
)
t1
join information_schema.columns t2
on t1.schemaname = t2.table_schema
and t1.tablename = t2.table_name
and t1.columnname = t2.column_name
WHERE
t1.schemaname = 'schema1'
and t1.tablename = 'table1'
order by t2.ordinal_position;
【问题讨论】:
标签: amazon-redshift