语法
注意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