database - 在 PL/pgSQL 中使用变量存储查询结果

标签 database postgresql stored-procedures plpgsql postgresql-9.1

如何将查询结果分配给 PL/pgSQL(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 else part
 end if;
end;
return -- return my process result here
$BODY$
LANGUAGE plpgsql VOLATILE

在上面的函数中我需要存储这个查询的结果:

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

到变量name

如何处理?

最佳答案

我认为您正在寻找 SELECT select_expressions INTO :

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

这将从 test_table 中提取 name,其中 id 是您函数的参数,并将其保留在 name 中多变的。不要遗漏 test_table.name 上的表名前缀,否则您会收到关于引用不明确的投诉。

关于database - 在 PL/pgSQL 中使用变量存储查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328198/

相关文章:

sql - 是否可以创建一个带有两个插入语句的存储过程,其中第一个插入语句中的 id/primary_key 将在第二个中使用?

sql - 在源代码管理中维护存储过程

c# - 数据库存储的简单加密/解密

ruby-on-rails - 多态关联的多重内部连接

php - fatal error : Call to undefined function mysqli_result()

ruby-on-rails - 如何建模用户自定义表模型与字段模型的关系

ruby-on-rails - Heroku 错误:ActionView::Template::Error(#<Message:0x007fc9df016930> 的未定义方法 `captcha')

sql-server - 如何从 KILLED/ROLLBACK 状态挽救 SQL Server 2008 查询?

sql - 在违反 View 上的唯一约束时插入时将增量整数附加到数据库表行

php - 使用桥连接表