-----------------条件判断:根据条件是否为真,执行相应的操作
1、IF ELSE 判断
2、CASE WHEN 判断
-
----------IF ELSE 条件判断
--语法结构:
DECLARE
--声明体
BEGIN
--逻辑体
IF 条件1 THEN 逻辑1;
[ELSIF 条件2 THEN 逻辑2;
ELSIF 条件3 THEN 逻辑3;
.
.
.
ELSE 其它逻辑;]
END IF;
END;
--需要注意的是:
1、END IF; 后面的分号不要忘
2、每写完一个逻辑(then后面的内容),都有一个分号表示结束
3、IF ELSE 条件判断只能对变量进行判断,不能对表里面的列进行判断
意思就是:不能像之前学的case when一样作为查询的信息放在select后面
4、走IF后面为真的逻辑,如果多个if后面为真,那么走最先的那条
5、要先理解清楚判断的对象是什么,条件是什么,条件是否完整,以及then后面是要做什么操作
--比如:输入两个数字,打印较大的那个数,如果一样大,则打印hello world
DECLARE
X NUMBER := &输入一个数字X;
Y NUMBER := &输入一个数字Y;
Z CONSTANT VARCHAR2(15) := 'HELLO WORLD';
BEGIN
IF X > Y THEN
DBMS_OUTPUT.PUT_LINE(X);
ELSIF X < Y THEN
DBMS_OUTPUT.PUT_LINE(Y);
ELSE
DBMS_OUTPUT.PUT_LINE(Z);
END IF;
END;
/*小练习一把:输入员工编号,查询该员工的工资,如果工资大于1500,则加薪2000,
如果工资大于900,则加薪3000,
否则加薪1000
打印该员工的编号,姓名,工资,加薪后的工资*/
DECLARE
V_EMPNO NUMBER := &输入一个员工编号;
V_SAL NUMBER(7, 2);
V_ENAME VARCHAR2(10);
V_NEWSAL NUMBER;
BEGIN
--通过隐式游标将查询到的结果分别赋值给不同的变量
SELECT E.ENAME, E.SAL
INTO V_ENAME, V_SAL
FROM EMP E
WHERE E.EMPNO = V_EMPNO;
--然后,再对这个变量的值进行判断,执行不同的操作
IF V_SAL > 1500 THEN
V_NEWSAL := V_SAL + 2000;
ELSIF V_SAL > 900 AND V_SAL <= 1500 THEN