case when的语法
case when 表达式是一个通用条件的表达式,可以在表达式有效的任何位置使用。
CASE
WHEN THEN
WHEN THEN
ELSE
END
1、case when 用在select语句中
SELECT a, CASE WHEN a=1 THEN 'one'
WHEN a=2 THEN 'two'
ELSE 'other' END
FROM test;
2、case when 用在where语句中
SELECT \* FROM tbname t WHERE 1=1
AND (CASE WHEN t.vc\_state = '2' THEN t.vc\_userId ELSE 当前登录人id END ) = 当前登录人id
注意
1.result表示关联条件为真时返回的值,所以无论有多少个when子句,其result都必须的同一个类型的值,因为一个关系型数据库字段只能有一种类型(含括else可能返回的结果)
2.condition “如果为false,则以相同的方式评估后续where子句”即如果为真,就按照这种方式返回结果result,相当于是有先后顺序的