PL/SQL 条件控制语句

时间:2023-03-09 20:19:23
PL/SQL 条件控制语句

1、if-then 语句

语法:

IF 条件 THEN
语句序列;
END IF;

实例:

DECLARE
i number(2) := 10;
BEGIN
IF i < 20 THEN
dbms_output.put_line('True');
END IF;
END;

2、if-then-else 语句

语法:

IF 条件 THEN
语句序列1;
ELSE
语句序列2;
END IF;

实例:

DECLARE
i number(2) := 10;
BEGIN
IF i < 10 THEN
dbms_output.put_line('True');
ELSE
dbms_output.put_line('False');
END IF;
END;

3、if-then-elsif 语句

语法:

IF 条件1 THEN
语句序列1;
ELSIF 条件2 THEN
语句序列2;
ELSE
语句序列3;
END IF;

实例:

DECLARE
i number(2) := 10;
BEGIN
IF i < 10 THEN
dbms_output.put_line('True1');
ELSIF i < 20 THEN
dbms_output.put_line('True2');
ELSE
dbms_output.put_line('False');
END IF;
END;

注:可以在一个IF-THENIF-THEN-ELSIF语句中使用另一个IF-THENIF-THEN-ELSIF语句。

4、case 语句

语法:

CASE selector
WHEN 'value1' THEN 语句序列1;
WHEN 'value2' THEN 语句序列2;
WHEN 'value3' THEN 语句序列3;
...
ELSE 语句序列n; -- default case
END CASE;

实例:

DECLARE
sex CHAR(1) := '';
BEGIN
CASE sex
WHEN '' THEN dbms_output.put_line('男');
WHEN '' THEN dbms_output.put_line('女');
ELSE dbms_output.put_line('RY');
END CASE;
END;

5、搜索 case 语句

语法:

CASE
WHEN selector = 'value1' THEN 语句序列1;
WHEN selector = 'value2' THEN 语句序列2;
WHEN selector = 'value3' THEN 语句序列3;
...
ELSE 语句序列n; -- default case
END CASE;

实例:

DECLARE
sex CHAR(1) := '';
BEGIN
CASE
WHEN sex = '' THEN dbms_output.put_line('男');
WHEN sex = '' THEN dbms_output.put_line('女');
ELSE dbms_output.put_line('RY');
END CASE;
END;