我的代码是:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
它返回table的列名aean
。
现在,我声明了一个数组:
DECLARE colnames text[]
如何将select的输出存储在colnames数组中。
是否需要初始化名字?
我的代码是:
SELECT column_name
FROM information.SCHEMA.columns
WHERE table_name = 'aean'
它返回table的列名aean
。
现在,我声明了一个数组:
DECLARE colnames text[]
如何将select的输出存储在colnames数组中。
是否需要初始化名字?
Answers:
有两种方法。一种是合计:
SELECT array_agg(column_name::TEXT)
FROM information.schema.columns
WHERE table_name = 'aean'
另一种是使用数组构造函数:
SELECT ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name = 'aean')
我想这是为plpgsql。在这种情况下,您可以像这样分配它:
colnames := ARRAY(
SELECT column_name
FROM information.schema.columns
WHERE table_name='aean'
);
DECLARE
将数组作为my_array INTEGER[];
(或任何相关类型)。您也可以在查询的WHERE
子句中使用数组,例如WHERE values = ANY(my_array)
。在ANY
接受一个阵列或一组,并且将在该阵列/组检查存在,所以它等效作用是IN ()
在某种意义上
array_agg(column_name, ',')