PL/SQL-Urteil

Inhaltsverzeichnis

2. – Bedingtes Urteil WENN SONST 

3. -- Verschachtelung von Urteilen


1. - Entwerfen Sie ein Programm, um die Jobnummer eines Mitarbeiters manuell einzugeben und das monatliche Gehaltseinkommen des Mitarbeiters zu ermitteln
. Wenn es weniger als 1.000 beträgt, wird die Mittelschicht ausgegeben
. Wenn es 1.000 bis 3.000 beträgt, wird a ausgegeben Bestimmter Mitarbeiter gehört zu der Gruppe mit hohem Einkommen
– wenn es über 3.000 liegt, wird es ausgegeben. Output, ein bestimmter Mitarbeiter ist der Spitzenverdiener

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. – Bedingtes Urteil WENN SONST 
IF 条件1 THEN 
  执行的逻辑1;
 ELSIF 条件2 
   THEN
  执行的逻辑2;
 .....
 
 ELSE 
   执行的逻辑N
   END IF;

Fall: Geben Sie den Namen und das Gehalt manuell ein, geben Sie den Namen und das Gehalt aus und bestimmen Sie, zu welcher Einkommensgruppe er gehört.
Wenn es weniger als 1000 ist, geben Sie die Mittelschicht aus
- 1000 bis 3000 und geben Sie aus, dass ein bestimmter Mitarbeiter einer Gruppe mit hohem Einkommen angehört
- höher als 3000 ist die Leistung, der oder die Mitarbeiter ist der Spitzenverdiener

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. -- Verschachtelung von Urteilen

-- Bestimmen Sie anhand der eingegebenen Mitarbeiternummer die Position der Person und bestimmen Sie anschließend, welcher Abteilung die Person angehört.

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;

Supongo que te gusta

Origin blog.csdn.net/weixin_57024726/article/details/133291774
Recomendado
Clasificación