我正在努力使 plpgsql if 语句的语法正确。
我想根据m2
函数参数的值使用不同的 where 子句。
但我明白了ERROR: syntax error at or near "if"
create or replace function some_func(m1 int, m2 int)
returns table(match_id int) as
$$
begin
return query
select m.match_id from match as m
if m2 < 1 then -- ERROR: syntax error at or near "if"
where m.match_id > m1;
else
where m.match_id > m1 and m.match_id < m2;
end if;
end;
$$ language 'plpgsql';
文件说我应该做
39.6.2.2. IF-THEN-ELSE
IF boolean-expression THEN
statements
ELSE
statements
END IF;
但似乎我已经做到了,所以我一定误解了 plpgsql 如何工作的其他方面。