加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle case when 的使用方法

发布时间:2020-12-12 15:54:15 所属栏目:百科 来源:网络整理
导读:文章转载自:http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.html 1. CASE WHEN 表达式有两种形式 -- 简单Case函数 CASE sex WHEN ' 1 ' THEN 男 ' 2 女 ELSE 其他 END Case搜索函数 CASE WHEN sex = END 2. CASE WHEN 在语句中不同位置的用法

文章转载自:http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.html

1. CASE WHEN 表达式有两种形式

--简单Case函数  

CASE sex  
WHEN '1' THEN '  
2ELSE 其他END  

Case搜索函数  CASE
WHEN sex = END  

2. CASE WHEN 在语句中不同位置的用法

2.1 SELECT CASE WHEN 用法

SELECT   grade,COUNT (CASE = 1 THEN 1      /*sex 1为男生,2位女生*/
                       ELSE NULL
                       END) 男生数,0)">2 1
                       NULL
                       END) 女生数
    FROM students GROUP BY grade;

2.3 WHERE CASE WHEN 用法

SELECT T2.*,T1.*
   FROM T1,T2
  WHERE (WHEN T2.COMPARE_TYPE A' AND
                   T1.SOME_TYPE LIKE NOTHING%'
                1
              != NOT ELSE 0
           END) 1

2.4 GROUP BY CASE WHEN 用法

SELECT  
WHEN salary <= 500 > 500 AND salary 600  600 800  3800 1000 4NULL END salary_class, 别名命名
COUNT(*)  
FROM    Table_A  
BY  
END;  

3.关于IF-THEN-ELSE的其他实现

3.1 DECODE() 函数

select decode(sex,0)">M',0)">MaleFFemaleUnknown')
from   employees;

貌似只有Oracle提供该函数,而且不支持ANSI SQL,语法上也没CASE WHEN清晰,个人不推荐使用。

3.2 在WHERE中特殊实现

WHERE (T2.COMPARE_TYPE AND T1.SOME_TYPE ')
         OR
        (T2.COMPARE_TYPE ')

这种方法也是在特殊情况下使用,要多注意逻辑,不要弄错。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读