使用SQL中SELECT語句的使用條件邏輯
如果使用CASE表達式直接在SELECT語句中執行條件邏輯,可以解決使用數據庫中的一些問題,下面將為您示例分析,供您參考:
問題
在SELECT語句中對數值進行IF-ELSE操作。例如,要產生一個結果集,如果一個員工的工資小于等于$2000,就返回消息UNDERPAID,如果大于等于$4000,就返回消息OVERPAID,如果在兩者之間,就返回OK。結果集應如下所示:
ENAME SAL STATUS ---------- ---------- ---------- SMITH 800 UNDERPAID ALLEN 1600 UNDERPAID WARD 1250 UNDERPAID JONES 2975 OK MARTIN 1250 UNDERPAID BLAKE 2850 OK CLARK 2450 OK SCOTT 3000 OK KING 5000 OVERPAID TURNER 1500 UNDERPAID ADAMS 1100 UNDERPAID JAMES 950 UNDERPAID FORD 3000 OK MILLER 1300 UNDERPAID
解決方案
使用CASE表達式直接在SELECT語句中執行條件邏輯。
select ename,sal, case when sal <= 2000 then 'UNDERPAID' when sal >= 4000 then 'OVERPAID' else 'OK' end as status from emp
討論
CASE表達式可以針對返回值執行條件邏輯??梢越oCASE表達式取別名,以返回更易讀的結果集。在本解決方案中,給CASE表達式取的別名是STATUS。ELSE子句是可選的,如果沒有使用ELSE,對于不滿足判斷條件的行,CASE表達式會返回NULL。
【編輯推薦】