mysql中使用CASE WHEN
生活随笔
收集整理的這篇文章主要介紹了
mysql中使用CASE WHEN
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡單的使用CASE WHEN
CASE SCORE WHEN 'A' THEN '優' ELSE '不及格' END CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END CASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END上面的sql等同于
CASE SCORE WHEN 'A' THEN '優' WHEN 'B' THEN '良' WHEN 'C' THEN '中' ELSE '不及格' ENDTHEN后面的值與ELSE后面的值類型應一致,否則報錯:
CASE SCORE WHEN 'A' THEN '優' ELSE 0 END'優’和0不一致會報錯。
引申出幾種常用場景
場景1 :有分數score,score<60返回不及格,score>=60返回及格,score>=80返回優秀
SELECTSTUDENT_NAME,(CASE WHEN score < 60 THEN '不及格'WHEN score >= 60 AND score < 80 THEN '及格'WHEN score >= 80 THEN '優秀'ELSE '異常' END) AS REMARK FROMTABLE場景2:現老師要統計班中,有多少男同學,多少女同學,并統計男同學有幾人及格,女同學有幾人及格,要求寫一個sql輸出結果。表結構如下,stu_sex,0表示男生,1表示女生
| XM | 小明 | 0 | 88 |
| XL | 小磊 | 0 | 55 |
| XF | 小峰 | 0 | 45 |
| XH | 小紅 | 1 | 66 |
| XN | 曉妮 | 1 | 77 |
| XY | 小伊 | 1 | 99 |
結果
| 3 | 3 | 1 | 3 |
場景3:經典行轉列,并配合聚合函數做統計
現要求統計各個城市,總共使用了水耗、電耗、熱耗,使用一條sql輸出
有能耗表如下:其中,E_TYPE表示能耗類型,0表示水耗,1表示電耗,2表示熱耗
| 北京 | 28.50 | 0 |
| 北京 | 23.51 | 1 |
| 北京 | 28.12 | 2 |
| 北京 | 12.30 | 0 |
| 北京 | 15.46 | 1 |
| 上海 | 18.88 | 0 |
| 上海 | 16.66 | 1 |
| 上海 | 19.99 | 0 |
| 上海 | 10.05 | 0 |
輸出結果:
| 北京 | 40.80 | 38.97 | 28.12 |
| 上海 | 48.92 | 16.66 | 0 |
場景4:CASE WHEN中使用子查詢
根據城市用電量多少,計算用電成本。假設電能耗單價為三擋,根據不同的能耗值,使用相應價格計算成本。
價格表如下:
| 1.20 | 0 | 10 |
| 1.70 | 1 | 30 |
| 2.50 | 2 | 50 |
我只轉了前面幾個實用且效率會比較高的例子,覺得這篇文章解釋的很到位,博客原文在這里
博客轉自:https://blog.csdn.net/rongtaoup/article/details/82183743
總結
以上是生活随笔為你收集整理的mysql中使用CASE WHEN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌发布 Fitbit Charge 6
- 下一篇: MySQL基础---增删改查语法