case when的幾種寫法區別

1.case when的作用

case when的主要作用就是判斷取的字段值是否等於某個值,如果等於就等於一個值,否則等於另外的值

2.case when的倆種寫法

case 有倆種寫法:分別是簡單case函數和搜索case函數
初始表內容:
±--------±----------+
| de1.id | de1.name |
±--------±----------+
| 1 | wq |
| 2 | ww |
| 3 | dsd |
| NULL | NULL |
±--------±----------+

2.1 簡單case函數:

select
case id 
when '1' then  'haha'
when '2' then 'hehe'
else 'lala' end
from
de1

結果如下:

| ±------+
| _c0 |
±------+
| haha |
| hehe |
| lala |
| lala |
±------+
這種簡單case函數是不能寫判斷語句的,比較簡單,不適合複雜的問題

2.2 case搜索函數

select
case when id = 1 then '你好'end ss,
case when id = 2 then '不好'end  zz
from
de1

結果如下

±-----+
| _c0 |
±-----+
| 你好 |
| 不好 |
| 愉悅 |
| 愉悅 |
±-----+

添加條件判斷

select
case when id > '1' and id < '3' then '你好'
     when id = '3' then '不好'
     else '好不好'end  zz
from
de1

結果如下

±-----+
| zz |
±-----+
| 好不好 |
| 你好 |
| 不好 |
| 好不好 |
±-----+
由此可見搜索case功能要更強大一些

3.case when 還可以用作行專列

select
case when id = 1 then '你好'end ss,
case when id = 2 then '不好'end  zz
from
de1

結果如下:

±------±------+
| ss | zz |
±------±------+
| 你好 | NULL |
| NULL | 不好 |
| NULL | NULL |
| NULL | NULL |
±------±------+
多個casewhen一起使用可以將行轉爲列,在使用行專列的時候要注意每個case後邊都要跟着一個end來作爲結束,否則將會報。
以上就是case when 的一些簡單應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章