如何将查询结果分配给 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。
name
如何处理这个?
我想你正在寻找SELECT select_expressions INTO:
SELECT select_expressions INTO
select test_table.name into name from test_table where id = x;
这将把你的函数参数name从test_table哪里拉出来,并将它留在变量中。不要遗漏表名前缀,否则您会收到有关不明确引用的投诉。id``name``test_table.name
test_table
id``name``test_table.name