一.条件语句:
又称选择语句,它的主要作用是根据条件的变化选择执行不同的代码,它包括IF语句和CASE语句。
IF语句
--1.IF...THEN...ELSE...END IF;
判断两个输入数值的大小
DECLARE
--定义两个变量
V_DATE1 NUMBER:='&请输入第一个数';
V_DATE2 NUMBER:='&请输入第二个数';
BEGIN
--判断那个数值更大
IF V_DATE1>V_DATE2 THEN
DBMS_OUTPUT.PUT_LINE(V_DATE1||'大');
ELSE
DBMS_OUTPUT.PUT_LINE(V_DATE2||'大');
END IF;
END;
说明:if里的表达式为true则执行if下的语句,不然则执行else下的语句
--2.IF...THEN...ELSIF...ELSE...END IF;
根据输入分数给定等级
DECLARE
--定义变量:
V_1 NUMBER:='&输入你的分数';
BEGIN
--判断数据大小
IF V_1>=90 THEN
DBMS_OUTPUT.PUT_LINE('A');
ELSIF V_1>=80 THEN
DBMS_OUTPUT.PUT_LINE('B');
ELSIF V_1>=60 THEN
DBMS_OUTPUT.PUT_LINE('C');
ELSE
DBMS_OUTPUT.PUT_LINE('D');
END IF;
END;
解释:
当第一个表达式为true则执行第一个语句,若第一个表达式为false则判断第二个表达式,
如果第二个表达式为true执行第二个语句,若第二个表达式为false则判断第三个表达式……
直到最后一个表达式判断仍为false,则执行ELSE中的语句。
CASE语句
--3.CASE...WHEN...THEN...ELSE...END CASE;
CASE的用法与IF差不多,不过IF是以END IF结尾CASE是以IF CASE结尾;
根据输入分数判定等级
DECLARE
--定义变量
V_GRADE NUMBER:='&请输入你的分数';
BEGIN
--判断分数等级
CASE WHEN V_GRADE>=90 THEN
DBMS_OUTPUT.PUT_LINE('A');
WHEN V_GRADE>=80 THEN
DBMS_OUTPUT.PUT_LINE('B');
WHEN V_GRADE>=60 THEN
DBMS_OUTPUT.PUT_LINE('C');
ELSE
DBMS_OUTPUT.PUT_LINE('D');
END CASE;
END;
解释:当第一个表达式为true则执行第一个语句,若第一个表达式为false则判断第二个表达式,
如果第二个表达式为true执行第二个语句,若第二个表达式为false则判断第三个表达式……
直到最后一个表达式判断仍为false,则执行ELSE中的语句。(与上面雷同)