語法
注意when子句的排他性,當滿足when子句執行後就不再比較其他子句
- 基本case函數
CASE case_value
WHEN when_value THEN
statement_list1
ELSE
statement_list2
END CASE;
當case_value列等於when_value時值爲statement_list1,否則爲statement_list2
例如
select name,
case name
when 'a' then
'第一個字母'
when 'b' then
'第二個字母'
else
'其他字母'
end new_name
from user
- case搜索函數
CASE
WHEN conditional_statement THEN
statement_list
ELSE
statement_list
END CASE;
當滿足conditional_statement條件時,case爲statement_list,end後跟新取的此statement_list的列名
例如:
SELECT name,
CASE
WHEN name = 'a' THEN
3
WHEN name = 'b' THEN
2
else
1
END new_name
from user
其他使用
對一個可能有不同字符的列進行排序
select * from user
order by
case
when name = ‘a’ then 3
when name = ‘b’ then 2
else 1
end
DESC