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

发布于 2024-11-17 02:14:40 字数 214 浏览 3 评论 0原文

我有一个带有多个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

没︽人懂的悲伤 2024-11-24 02:14:40

是的,您可以使用“execute”执行动态命令

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

Yes, you can execute dynamic commands using "execute"

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文