《Oracle CASE WHEN 用法介绍.doc》由会员分享,可在线阅读,更多相关《Oracle CASE WHEN 用法介绍.doc(2页珍藏版)》请在三一文库上搜索。
1、Oracle CASE WHEN 用法介绍1. CASE WHEN 表达式有两种形式复制代码代码如下:-简单Case函数CASE sexWHEN 1 THEN 男WHEN 2 THEN 女ELSE 其他 END-Case搜索函数CASEWHEN sex = 1 THEN 男WHEN sex = 2 THEN 女ELSE 其他 END2. CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法复制代码代码如下:SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1/*sex 1为男生,2位女生*/ELSE NULLEND) 男
2、生数,COUNT (CASE WHEN sex = 2 THEN 1ELSE NULLEND) 女生数 FROM students GROUP BY grade;2.2 WHERE CASE WHEN 用法复制代码代码如下:SELECT T2.*, T1.* FROM T1, T2 WHERE (CASE WHEN T2.COMPARE_TYPE = A AND T1.SOME_TYPE LIKE NOTHING%THEN 1WHEN T2.COMPARE_TYPE != A ANDT1.SOME_TYPE NOT LIKE NOTHING%THEN 1ELSE 0END) = 12.3 GR
3、OUP BY CASE WHEN 用法复制代码代码如下:SELECTCASE WHEN salary 500 AND salary 600 AND salary 800 AND salary 500 AND salary 600 AND salary 800 AND salary 复制代码代码如下:select decode(sex, M, Male, F, Female, Unknown)from employees;貌似只有Oracle提供该函数,而且不支持ANSI SQL,语法上也没CASE WHEN清晰,个人不推荐使用。3.2 在WHERE中特殊实现复制代码代码如下:SELECT T2.*, T1.* FROM T1, T2 WHERE (T2.COMPARE_TYPE = A AND T1.SOME_TYPE LIKE NOTHING%)OR(T2.COMPARE_TYPE != A AND T1.SOME_TYPE NOT LIKE NOTHING%)这种方法也是在特殊情况下使用,要多注意逻辑,不要弄错。