PostgreSQL:函数中的嵌套CASE条件表达式?

时间:2014-03-31 10:45:51

标签: postgresql case plpgsql

如何在使用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);

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 
-----