我需要在postgresql中使用一个可以存储列数据的变量。 我现在正在使用它:
DECLARE
var_tmp numeric(1);
SELECT number FROM table_tmp;
现在我在table_tmp.number
中有多个数据,但我只获得var_tmp
变量中列的最后一个值。
我想要实现的是从该列获取所有数据到我的变量。
例如,如果我在table_tmp.number
中有10行,那么我想将所有10行分配给var_tmp
变量。
有没有办法做到这一点?我应该以其他方式宣布吗?
答案 0 :(得分:2)
变量只能包含一个值。如果需要存储多个值,则需要一个数组:
DECLARE
var_tmp numeric[];
BEGIN
...
SELECT array_agg(number)
into var_tmp
FROM table_tmp;
答案 1 :(得分:1)
你必须使用临时表。
CREATE TEMP TABLE table_tmp(
var_tmp numeric(1)
);
SELECT number INTO table_tmp FROM orig_table ;
or
CREATE TEMP TABLE table_tmp AS
SELECT number
FROM orig_table;