如何在prepared语句中有条件地调用过程



我正在尝试做一些事情,但失败了,比如:

SELECT CASE WHEN 'Cleared' = ? THEN call alarm_clear_check(?, ?) ELSE call alarm_create(?,?,?,?) END

不幸的是,我无法将它们合并到一个过程中,所以我需要在一个语句中这样调用它们。

到目前为止,似乎没有办法,但我想知道我是否可以以某种方式有条件地调用这样的过程?

您可以使用PL/pgSQL这样做:

do $$
begin
if 'Cleared' = ? 
call alarm_clear_check(?, ?) 
else 
call alarm_create(?,?,?,?)
end if   
end $$

最新更新