今天我们来讲讲sql中常用到的case表达式,case表达式表达式是从SQL-92标准开始被引入的,case表达式有简单case表达式,和搜索case表达式两种写法
我们来看看简单case表达式。
简单case表达式:
-- 简单case表达式
SELECT *,
CASE sex
WHEN '1' THEN
'男'
WHEN '2' THEN
'女'
ELSE
'其他' end as '性别'
FROM
demo;
搜索case表达式
-- 搜索case表达式
SELECT
*, CASE
WHEN sex = '1' THEN
'男'
WHEN sex = '2' THEN
'女'
ELSE
'其他'
END AS '性别'
FROM
demo;
注意事项:
(1):统一各分支返回的数据类型
再写的时候,一定要注意case表达式里各个分支返回的数据类型是否一致,举个例子,比如某个分支返回字符型,而其他分支返回数值型的写法是错误的。
(2)不要忘了写end
我们常常在写end的时候,最容易出现的语法错误就是忘记写end,一定要注意下。
(3)养成写else子句的习惯
与end不同,else子句是可选的,不写也不会出错,不写else子句时,case表达式的执行结果是null,不写的话可能会造成“语法”m没有错误,结果却不对这种不易追查的麻烦,所以最好明确的写上else子句(即便是在结果为null的情况下)