如何在使用PostgreSQL的函数中使用嵌套的CASE条件表达式?
例如,创建以下函数来计算两个数字:
create or replace function fun(n integer) returns void as
$body$
declare
a int :=10;
b int :=5;
addition int :=0;
subs int :=0;
begin
select n,
case when n=1 then
addition:=a+b;
raise info '%',addition;
case when n=2 then
subs:=a-b;
raise info '%',subs;
end
end;
$body$
language plpgsql;
- 调用功能
select fun(1);
答案 0 :(得分:1)
您无法在case
内找到命令。将案例用作raise
的参数。
create or replace function fun(n integer) returns void as
$body$
declare
a int := 10;
b int := 5;
begin
raise info '%', case n
when 1 then a + b
else a - b
end
;
end;
$body$
language plpgsql;
select fun(1);
INFO: 15
fun
-----
(1 row)
select fun(2);
INFO: 5
fun
-----