使用PostgreSQL存储过程将查询结果存储在变量中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

如何使用PostgreSQL存储过程将查询结果存储在变量中

我有一个存储过程

CREATE OR REPLACE FUNCTION test(x numeric)
RETURNS character varying AS
$BODY$
DECLARE
name   character varying(255);
begin
 name ='SELECT name FROM test_table where id='||x;

 if(name='test')then
  --do somthing
 else
  --do the eles part
 end if;
end;
return -- return my process result here
$BODY$
LANGUAGE plpgsql VOLATILE

在上面的过程中,我需要存储

'SELECT name FROM test_table where id='||id;

此查询将结果返回给变量名。

提问于
用户回答回答于

SELECT INTO:

select test_table.name into name from test_table where id = x;

nametest_table何地id是函数的参数,并将其保留在name变量。

用户回答回答于

只要分配一个变量,还可以在plpgsql函数中使用普通赋值:

name := (SELECT t.name from test_table t where t.id = x);

或使用SELECT INTO就像@Mu已经提供...

这也适用于:

name := t.name from test_table t where t.id = x;

扫码关注云+社区