標籤:
定義:
第一種:
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list]END CASE
第二種:
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list]END CASE
文法解釋:
case後面的 case_value 可以是任意值,也可以是某一個欄位。when_value是要比對的值,如果case_value和when_value相等,則值為 statement,如果不等則為null(假如有else,怎顯示else後的statement),
其實,整個語句的功能有點像swith case;
例1:
現有表event_register(隨便找了個表,例子不是特別合適,主要用來是說明用法)
SELECT name, CASE nameWHEN ‘張三‘ THEN 1 WHEN ‘小明明‘ THEN 2ELSE 3END as aaa FROM event_register where order_id = 21312529
運行結果:
| name |
aaa |
| 小明明 |
2 |
| 張三 |
1 |
| 小黑 |
3 |
| 小黑23 |
3 |
例2:
SELECT name, CASE WHEN name = ‘張三‘ THEN 1 WHEN name = ‘小明明‘ THEN 2else 3END as aaa FROM event_register where order_id = 21312529
運行結果:
| name |
aaa |
| 小明明 |
2 |
| 張三 |
1 |
| 小黑 |
3 |
| 小黑23 |
3 |
這裡去掉了case_value ,而when_value的值變成了運算式,總的來說都差不多。
mysql 文法一 :case when詳解