plpgsql函数。如何将值与值集进行比较?

时间:2015-12-30 07:55:49

标签: sql postgresql plpgsql

我有一个触发功能。 我想检查status是否是(5,6,4,7)

之一
CREATE OR REPLACE FUNCTION a()
  RETURNS trigger AS
$BODY$
begin
    if old.status = (5,6,4,7) then
        do something.
    end if; 
    return old;
end;
$BODY$
  LANGUAGE plpgsql VOLATILE

如何将其更改为正确的语法?

2 个答案:

答案 0 :(得分:4)

使用IN运算符:

...
if old.status IN (5,6,4,7) then
     do something.
end if; 
...

答案 1 :(得分:0)

这是reference of this link

它只适用于postgresql 9.x

CREATE OR REPLACE FUNCTION a()
  RETURNS trigger AS
$BODY$
begin
    if old.status = ANY (VALUES (5),(6),(4),(7))) then
        do something.
    end if; 
    return old;
end;
$BODY$
  LANGUAGE plpgsql VOLATILE