Oracle條件判斷之IF ELSE的使用方式
Oracle條件判斷之IF ELSE
1.條件判斷語法
IF 條件1 THEN 執(zhí)行的邏輯1; ELSIF 條件2 THEN --條件1不滿足的時(shí)候,會(huì)先判斷是否滿足條件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í)候,會(huì)先判斷是否滿足條件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)
在操作過程中難免會(huì)誤操作,出現(xiàn)這種情況應(yīng)該怎樣解決呢?不要著急,下面與大家分享下誤刪的恢復(fù)語句2013-06-06oracle中l(wèi)eft join和right join的區(qū)別淺談
oracle中l(wèi)eft join和right join的區(qū)別淺談,需要的朋友可以參考一下2013-02-02Oracle 數(shù)據(jù)倉庫ETL技術(shù)之多表插入語句的示例詳解
Oracle 數(shù)據(jù)庫為 ETL 流程提供了豐富的功能,今天我們就給大家介紹一下 Oracle 多表插入語句,也就是 INSERT ALL 語句,今天通過示例代碼給大家介紹Oracle 數(shù)據(jù)倉庫 ETL 技術(shù)之多表插入語句的相關(guān)知識,感興趣的朋友一起看看吧2021-04-04Oracle數(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-03oracle12c安裝報(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-06oracle 數(shù)據(jù)按主鍵刪除慢問題的解決方法
下面小編就為大家?guī)硪黄猳racle 數(shù)據(jù)按主鍵刪除慢問題的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10