是否可以在plpgsql中的SELECT中附加WHERE子句?

时间:2011-06-23 11:43:51

标签: postgresql plpgsql

我有一个带有几个IN参数的函数。

我需要构建一个复杂的select并使用WHERE CLAUSE中的params。

有什么方法可以添加这样的条件:

if ($1 > 0)  then
 condition1 ='col1 = $1';
end if;

SELECT * from table1 WHERE || condition1 ;

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

是的,您可以使用“执行”

执行动态命令
if ($1 > 0)  then
 condition1 ='col1 = '||$1::varchar;
end if;

execute 'select * from table1 where '||condition1;

http://www.postgresql.org/docs/8.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN