PL/SQL有3种类型的条件控制:IF、ELSIF和CASE语句
IF语句有两种形式:IF-THEN和IF-THEN-ELSE。使用IF-THEN语句,可以指定需要执行的一组动作。只有当条件的计算结果为TRUE时,才会执行这组动作。IF-THEN-ELSE语句指定两组动作。当条件的计算结果为FALSE或者NULL时,才会执行第2组动作。
END IF标识IF-THEN结构结束。
DECLARE
v_num1 NUMBER := 10;
-- 未初始化值为NULL
v_num2 NUMBER;
BEGIN
IF v_num1 = v_num2 THEN
DBMS_OUTPUT.PUT_LINE('条件成立');
ELSE
DBMS_OUTPUT.PUT_LINE('条件不成立');
END IF;
END;
CASE 语句存在两种形式:CASE和搜索式CASE。CASE语句可以设定选择器,选择器会决定需要执行哪组动作。而搜索式CASE语句没有选择器,搜索条件会按顺序计算,从而决定采取哪组动作。
CASE语句具有如下结构
CASE SELECTOR
WHEN EXPRESSION 1 THEN STATEMENT 1;
WHEN EXPRESSION 2 THEN STATEMENT 2;
…
WHEN EXPRESSION N THEN STATEMENT N;
ELSE STATEMENT N+1;
END CASE;
请注意,选择器只会计算一次,并且会顺序计算WHEN子句。表达式的值与选择器的值进行比较。如果两种值相等,那么与特定WHEN子句相关的语句会执行,并且随后的WHEN子句不会被计算。 如果任何表达式都不匹配选择器的值,则ELSE子句会被选中和执行。
DECLARE
v_num1 NUMBER := #
v_num2 NUMBER;
BEGIN
v_num2 := MOD(v_num1,2)