天天看点

mysql case when 解释_mysql 语法一 :case when详解

定义:

第一种:

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(随便找了个表,例子不是特别合适,主要用来是说明用法)

mysql case when 解释_mysql 语法一 :case when详解

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的值变成了表达式,总的来说都差不多。