定义:
第一种:
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 name
WHEN '张三' THEN 1
WHEN '小明明' THEN 2
ELSE 3
END 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 2
else 3
END as aaa FROM event_register where order_id = 21312529
运行结果:
| name | aaa |
| 小明明 | 2 |
| 张三 | 1 |
| 小黑 | 3 |
| 小黑23 | 3 |
这里去掉了case_value ,而when_value的值变成了表达式,总的来说都差不多。
本文详细介绍了 SQL 中 CASE 语句的两种形式及其使用方法,并通过具体示例展示了如何根据不同的条件返回相应的值。
7万+

被折叠的 条评论
为什么被折叠?



