case when 在oracle中的运用

By gavin

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,相当于是有先后顺序的