SQL Cookbook:一、检索记录(8)在SELECT语句中使用条件逻辑
生活随笔
收集整理的這篇文章主要介紹了
SQL Cookbook:一、检索记录(8)在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。
版權說明:作者:張穎希(PocketZ's Blog)
出處:http://www.cnblogs.com/PocketZ
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
本文翻譯內容取自網絡,純粹是練習英文水平,如有雷同,純屬意外!有不妥之處,歡迎拍磚!
轉載于:https://www.cnblogs.com/PocketZ/archive/2010/04/19/Using_Conditional_Logic_in_a_SELECT_Statement.html
總結
以上是生活随笔為你收集整理的SQL Cookbook:一、检索记录(8)在SELECT语句中使用条件逻辑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据访问层,完整的增,删,改,查
- 下一篇: 使用Jquery 结合后台数据库显示类似