是否可以在 plpgsql 的 SELECT 中附加 WHERE 子句?
我有一个带有多个 IN 参数的函数。
我需要构建一个复杂的选择并使用 WHERE 子句中的参数。
有什么办法可以添加一些这样的条件:
if ($1 > 0) then
condition1 ='col1 = $1';
end if;
SELECT * from table1 WHERE || condition1 ;
I have a function with several IN params.
I need to build a complex select and use the params in the WHERE CLAUSE.
Is there any way I can add some conditioning like this:
if ($1 > 0) then
condition1 ='col1 = $1';
end if;
SELECT * from table1 WHERE || condition1 ;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用动态 SQL
http://www.postgresql.org/docs/当前/静态/plpgsql-statements.html
You can use dynamic SQL
http://www.postgresql.org/docs/current/static/plpgsql-statements.html
是的,您可以使用“execute”执行动态命令
http://www.postgresql.org/docs/8.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
Yes, you can execute dynamic commands using "execute"
http://www.postgresql.org/docs/8.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN