我有一个带有几个IN参数的函数。
我需要构建一个复杂的select并使用WHERE CLAUSE中的params。
有什么方法可以添加这样的条件:
if ($1 > 0) then
condition1 ='col1 = $1';
end if;
SELECT * from table1 WHERE || condition1 ;
答案 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