Oracle條件判斷之IF ELSE的使用方式
Oracle條件判斷之IF ELSE
1.條件判斷語法
IF 條件1 THEN 執(zhí)行的邏輯1; ELSIF 條件2 THEN --條件1不滿足的時(shí)候,會先判斷是否滿足條件2 執(zhí)行的邏輯2; ELSE ---條件1 和條件2 都不滿足 執(zhí)行的邏輯3; END IF; ---結(jié)束 IF ELSE 條件判斷
2.練習(xí)1
傳入一個(gè)員工的編號
如果這個(gè)員工的工資小于1000,就給他加300獎(jiǎng)金
如果這個(gè)員工的工資 1000 到 2000,就給他加200獎(jiǎng)金
如果這個(gè)員工的工資 大于 2000,就給他加100獎(jiǎng)金
select * from emp where empno=7788;

DECLARE
v_EMPNO number := &input;
v_SAL number;
BEGIN
select sal into v_SAL from emp where empno = v_EMPNO;
IF v_SAL < 1000 THEN
UPDATE emp set comm = nvl(comm, 0) + 300 where empno = v_EMPNO;
-- commit;
ELSIF v_SAL between 1000 and 2000 THEN
--條件1不滿足的時(shí)候,會先判斷是否滿足條件2
UPDATE emp set comm = nvl(comm, 0) + 200 where empno = v_EMPNO;
-- commit;
ELSE
---條件1 和條件2 都不滿足
UPDATE emp set comm = nvl(comm, 0) + 100 where empno = v_EMPNO;
END IF; ---結(jié)束 IF ELSE 條件判斷
-- commit;
END;
select * from emp where empno=7788;
3.練習(xí)2
示例:用戶輸入 員工編號,判斷 這個(gè)員工所在部門的人數(shù),如果3個(gè)以內(nèi),則不變,如果5個(gè)以內(nèi) 則 該部門所有員工降薪100,否則 所有員工降薪200
DECLARE
v_EMPNO EMP.EMPNO%TYPE := &input;
v_COUNT number;
BEGIN
select count(1)
into v_COUNT
from emp
WHERE DEPTNO IN (SELECT DEPTNO FROM EMP WHERE EMPNO = V_EMPNO);
IF v_COUNT < 3 THEN
NULL;
ELSIF v_COUNT >= 3 and v_COUNT < 5 THEN
UPDATE emp
set sal = sal - 100
where DEPTNO IN (SELECT DEPTNO FROM EMP WHERE EMPNO = V_EMPNO);
-- commit;
ELSE
UPDATE emp
set sal = sal - 200
where DEPTNO IN (SELECT DEPTNO FROM EMP WHERE EMPNO = V_EMPNO);
END IF;
-- commit;
END;總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
oracle中誤刪除表后恢復(fù)語句(FLASHBACK)
在操作過程中難免會誤操作,出現(xiàn)這種情況應(yīng)該怎樣解決呢?不要著急,下面與大家分享下誤刪的恢復(fù)語句2013-06-06
oracle中l(wèi)eft join和right join的區(qū)別淺談
oracle中l(wèi)eft join和right join的區(qū)別淺談,需要的朋友可以參考一下2013-02-02
Oracle 數(shù)據(jù)倉庫ETL技術(shù)之多表插入語句的示例詳解
Oracle 數(shù)據(jù)庫為 ETL 流程提供了豐富的功能,今天我們就給大家介紹一下 Oracle 多表插入語句,也就是 INSERT ALL 語句,今天通過示例代碼給大家介紹Oracle 數(shù)據(jù)倉庫 ETL 技術(shù)之多表插入語句的相關(guān)知識,感興趣的朋友一起看看吧2021-04-04
Oracle數(shù)據(jù)庫ORA-28040:沒有匹配的驗(yàn)證協(xié)議解決辦法
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫ORA-28040:沒有匹配的驗(yàn)證協(xié)議問題的解決辦法,ORA-28040是Oracle數(shù)據(jù)庫的錯(cuò)誤代碼,表示沒有匹配的驗(yàn)證協(xié)議,這通常是由于客戶端和服務(wù)器之間的身份驗(yàn)證協(xié)議不匹配導(dǎo)致的,需要的朋友可以參考下2024-03-03
oracle12c安裝報(bào)錯(cuò):PRVF-0002的解決方法
本文為大家介紹下如何解決oracle12c安裝報(bào)錯(cuò):PRVF-0002,具體的排查思路如下,有類似情況的朋友可以參考下2013-09-09
教你設(shè)計(jì)大型Oracle數(shù)據(jù)庫
表及索引的存儲容量估算是根據(jù)其記錄長度及估算的最大記錄數(shù)確定的。在容量計(jì)算中考慮了數(shù)據(jù)塊的頭開銷及記錄和字段的頭開銷等等。表及索引的initial和next存儲參數(shù)一般設(shè)為相等,pctincrease設(shè)為0。2009-06-06
oracle 數(shù)據(jù)按主鍵刪除慢問題的解決方法
下面小編就為大家?guī)硪黄猳racle 數(shù)據(jù)按主鍵刪除慢問題的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10

