VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

条件语句

功能描述

条件语句的主要作用是判断参数或者语句是否满足已给定的条件,根据判定结果执行相应的操作。

语法格式

Vastbase中支持如下多种形式的条件语句。

IF_THEN

IF_THEN语句是IF的最简单形式。如果条件为真,statements将被执行。否则,将忽略它们的结果使该IF_THEN语句执行结束。

示例:

declare
n int;
begin
n :=95;
raise info 'n:%',n;
if n>85 then raise info '优秀';
end if;
end;
/

返回结果为:

INFO:  n:95
INFO:  优秀
ANONYMOUS BLOCK EXECUTE

IF_THEN_ELSE

IF_THEN_ELSE语句增加了ELSE的分支,可以声明在条件为假的时候执行的语句。

该语法还可以进行嵌套使用,嵌套方式如下所示:

IF sex = 'm' THEN 
  pretty_sex := 'man'; 
ELSE 
  IF sex = 'f' THEN 
    pretty_sex := 'woman'; 
  END IF; 
END IF;

这种形式实际上就是在一个IF语句的ELSE部分嵌套了另一个IF语句。

IF_THEN_ELSE_IF

IF_THEN_ELSE语句增加了ELSE的分支,可以声明在条件为假的时候执行的语句。

IF_THEN_ELSIF_ELSE

IF_THEN_ELSE语句增加了ELSE的分支,可以声明在条件为假的时候执行的语句。

IF_THEN_ELSEIF_ELSE

ELSEIF是ELSIF的别名。语法格式和用法均与IF_THEN_ELSIF_ELSE相同。

示例

示例1: 在函数中使用IF语句。

1、创建函数。

CREATE OR REPLACE FUNCTION FUN_1165174(n int )
return varchar2
AS
begin
raise info 'n:%',n;
if n>85 then raise info '优秀';
elseif n>70 then raise info '良好';
elseif n>=60 then raise info '合格';
else raise info '不合格';
end if;
return '标记情况结束!';
end;
/

2、调用函数。

call FUN_1165174(100);
call FUN_1165174(60);
call FUN_1165174(20);

返回结果分别为:

INFO:  n:100
INFO:  优秀
  fun_1165174
----------------
 标记情况结束!
(1 row)

INFO:  n:60
INFO:  合格
  fun_1165174
----------------
 标记情况结束!
(1 row)

INFO:  n:20
INFO:  不合格
  fun_1165174
----------------
 标记情况结束!
(1 row)

示例2: 在匿名块中使用IF语句。

declare
n int;
begin
n :=95;
raise info 'n:%',n;
if n>85 then raise info '优秀';
elseif n>70 then raise info '良好';
elseif n>60 then raise info '合格';
else raise info '不合格';
end if;
raise info '标记情况结束!';
end;
/

返回结果为:

INFO:  n:95
INFO:  优秀
INFO:  标记情况结束!
ANONYMOUS BLOCK EXECUTE