oracle where case when用法
Oracle数据库中的CASE WHEN用法非常简单,具体来说,它就是单条SQL语句用于实现多分支选择结构,其形式为: CASE
WHEN条件1 THEN 动作1 WHEN条件2 THEN 动作2 WHEN条件N THEN 动作N END
利用CASE WHEN结构开发者可以完成IF…THEN…ELSE等复杂的逻辑选择结构,它实现的功能如下:
1、比较条件为常量值时。
当条件(condition)为常量时,一般形式为CASE WHEN 常量 THEN 动作 ,比如: SELECT col1, col2, CASE WHEN col3=10 THEN 'Ten' WHEN col3=20 THEN 'Twenty' END FROM table1;
在上例中,当条件col3=10时,输出‘Ten’;当条件col3=20时,输出‘Twenty’,其它情况输出null。
3、子查询,也可以在比较表达式中使用子查询,比如: SELECT col1, col2, CASE
WHEN (SELECT MAX(mark) FROM subtable1 where col1='ABC')>50 THEN 'Greater Than 50' END
FROM table1;
在上例中,当从子表subtable1中满足条件col1='ABC'的记录mark返回的全部值<50时,输出‘Greater Than 50’,其它情况输出null。
总之,Case when的使用可以根据具体的需要进行调整,主要受条件的影响,只要掌握CASE WHEN的使用规则,那么,它就可以用来实现任何复杂的逻辑结构,使用效果很好。