case表示式詳解

2022-08-23 07:57:12 字數 2004 閱讀 9654

---------格式一---------case 條件表示式

when 條件表示式結果1 then

語句段1

when 條件表示式結果2 then

語句段2

......

when 條件表示式結果n then

語句段n

[else 條件表示式結果]

end;

---------格式二---------case

when 條件表示式1 then

語句段1

when 條件表示式2 then

語句段2

......

when 條件表示式n then

語句段n

[else 語句段]

例4:

1

declare

2 v_grade char(1) := upper('&p_grade');

4begin

6case v_grade

7 when 'a' then 'excellent'

8 when 'b' then 'very good'

9 when 'c' then 'good'

10 else 'no such grade'

11end;

13 end;

例5:

1

declare

2 v_first_name employees.first_name%type;

3 v_job_id employees.job_id%type;

4 v_salary employees.salary%type;

5 v_sal_raise number(3,2);

6begin

7select first_name, job_id, salary into

8v_first_name, v_job_id, v_salary

9 from employees where employee_id = &emp_id;

10case

11 when v_job_id = 'pu_clerk'then

12 if v_salary < 3000 then v_sal_raise := .08;

13 else v_sal_raise := .07;

14end if;

15 when v_job_id = 'sh_clerk'then

16 if v_salary < 4000 then v_sal_raise := .06;

17 else v_sal_raise := .05;

18end if;

19 when v_job_id = 'st_clerk'then

20 if v_salary < 3500 then v_sal_raise := .04;

21 else v_sal_raise := .03;

22end if;

23else

24 dbms_output.put_line('該崗位不漲工資: '||v_job_id);

25end case;

26 dbms_output.put_line(v_first_name||'的崗位是'||v_job_id

27 ||'、的工資是'||v_salary

28 ||'、工資漲幅是'||v_sal_raise);

29 end;

SQL高階查詢 case表示式

case表示式可以在sql中實現if then else型的邏輯,oracle database 9i及以上版本支援case表示式,case工作方式與decode 類似 有兩種型別的case表示式 1.簡單case表示式,使用表示式確定返回值 case search expression when ...

case表示式和decode函式

1.用case表示式做等值判斷 格式 case 表示式 when 值1 then 返回值1 when 值2 then 返回值2 else 預設返回值 end 示例 查詢員工編號,姓名,部門編號,部門名稱 部門名稱 30 sale 20 etc 10 jxb 其他 icss select empno ...

Cron表示式詳解 job表示式

cron表示式的詳細用法 字段 允許值 允許的特殊字元 秒 0 59 分 0 59 小時 0 23 日期 1 31 l w c 月份 1 12 或者 jan dec 星期 1 7 或者 sun sat l c 年 可選 留空,1970 2099 例子 0 5 每5秒執行一次 字元被用來指定所有的值。...