case when 用法
CASE命令有两种语句格式。
语法形式1:
CASE expression
WHEN expression_11 THEN expression_12
…
WHEN expression_n1 THEN expression_n2
[ELSE expression_m]
END
select中的例子:
SELECT
id,
name,
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他'
END
FROM
student
语法形式2:
CASE WHEN condition_expression_1 THEN expression_1
…
WHEN condition_expression_n THEN expression_n
[ELSE expression_m]
END
select中的例子:
SELECT
id,
name,
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END
FROM
student
where条件中的例子:
SELECT
id,
name
FROM
student
WHERE
sex = (
CASE
WHEN ${传入的参数} = '1' THEN '男'
WHEN ${传入的参数} = '2' THEN '女'
ELSE '其他'
END)
两个运行结果一样: 有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略