目录
1. -- 设计一个程序,手动输入一个员工工号,判断员工的月薪收入
-- 低于 1000 ,就输出中产
-- 1000~ 3000 ,就输出某某员工是高收入人群
-- 高于 3000就输出,某某员工是顶级收入人群
DECLARE
-- 定义 员工编号变量
V_NO EMP.EMPNO%TYPE;
-- 定义 输出语句变量
V_TEXT VARCHAR2(30);
BEGIN
-- 输入员工工号
V_NO:=&输入员工号;
-- SQL 语句 CASE WHEN 判断 各个收入阶层,输出对应的需求
SELECT
CASE WHEN E.SAL+nvl(e.comm,0) <1000 THEN '中产'
WHEN E.SAL+NVL(E.COMM,0) BETWEEN 1000 AND 3000 THEN '高收入人群'
ELSE '顶级收入人群' END
INTO
V_TEXT
FROM EMP E
WHERE E.EMPNO=V_NO;
-- 输出结果
DBMS_OUTPUT.put_line(V_NO || V_TEXT);
END;
2. -- 条件判断IF ELSE
IF 条件1 THEN
执行的逻辑1;
ELSIF 条件2
THEN
执行的逻辑2;
.....
ELSE
执行的逻辑N
END IF;
案例-- 手动输入姓名和工资,输出姓名和工资,并判断出他是什么收入人群
-- 低于 1000 ,就输出中产
-- 1000~ 3000 ,就输出某某员工是高收入人群
-- 高于 3000就输出,某某员工是顶级收入人群
DECLARE
V_NAME VARCHAR2(20):='&请输入姓名';
V_SAL NUMBER:=&请输入工资;
BEGIN
-- 逻辑判断
IF V_SAL <1000 THEN
DBMS_OUTPUT.put_line(V_NAME ||'中产');
ELSIF V_SAL BETWEEN 1000 AND 3000 THEN
DBMS_OUTPUT.put_line(V_NAME||'高收入人群') ;
ELSE
DBMS_OUTPUT.put_line(V_NAME||'顶级收入人群');
END IF;
END;
3. -- 判断的嵌套
-- 根据输入的员工编号,判断这个人的岗位,然后再判断这个人是哪个部门的.
DECLARE
-- 先定义变量
V_NO NUMBER:=&V_NO;
V_JOB VARCHAR2(10);
V_DEPTNO NUMBER;
BEGIN
SELECT
E.JOB,E.DEPTNO
INTO
V_JOB,V_DEPTNO
FROM EMP E
WHERE E.EMPNO=V_NO;
-- 判断
IF V_JOB = 'MANAGER' THEN
-- 外层判断1
DBMS_OUTPUT.put_line('这个人是管理岗位!');
IF V_DEPTNO=10 THEN
DBMS_OUTPUT.put_line('这个人是10部门!');
ELSIF V_DEPTNO=20 THEN
DBMS_OUTPUT.put_line('这个人是20部门!');
ELSIF V_DEPTNO=30 THEN
DBMS_OUTPUT.put_line('这个人是30部门!');
ELSE
DBMS_OUTPUT.put_line('这个人是40部门!');
END IF ;-- 里层判断1结束
ELSE
--外层判断2
DBMS_OUTPUT.put_line('打工人!!!');
IF V_DEPTNO=10 THEN
DBMS_OUTPUT.put_line('这个人是10部门!');
ELSIF V_DEPTNO=20 THEN
DBMS_OUTPUT.put_line('这个人是20部门!');
ELSIF V_DEPTNO=30 THEN
DBMS_OUTPUT.put_line('这个人是30部门!');
ELSE
DBMS_OUTPUT.put_line('这个人是40部门!');
END IF ;-- 里层判断1结束
END IF;
END;