• 商务部新闻发言人就6月15日美方公布对华贸易措施发表谈话 2019-07-10
  • 点球争议!C罗那一球到底该不该判 西媒也分裂了 2019-07-08
  • 那块“没用”的上海牌手表 2019-07-08
  • 统帅关怀励兵心 矢志强军谋打赢——习近平视察北部战区海军发表的重要讲话在全军和武警部队引起热烈反响 2019-07-07
  • 世界杯-绝杀!乌拉圭1-0埃及取开门红 苏神四失良机 2019-07-03
  • 土地是自然存在的地球的一部分,不是人类劳动成果,正如“深山老林”是自然存在的地球的一部分,不是人类劳动成果一样。懂吗? 2019-06-30
  • 宝鸡消防—宝鸡市消防支队 2019-06-26
  • 【学习时刻学思践悟十九大①】人民大学马亮:在新时代增强党的改革创新本领 2019-06-26
  • 两个后卫没防住!阿圭罗转身爆射破门! 2019-06-24
  • 南宁以秀美市容环境迎"两会" 舒适广场获市民点赞 2019-06-22
  • 四平市:实施“五安工程” 激活平安细胞 2019-06-18
  • 福建网友给人民网《地方领导留言板》的留言,领导回复了吗? 2019-06-18
  • 5G标准出炉!与4G有啥不一样? 或1秒内下载1G电影 2019-06-16
  • 一二线城市土地出让冰火两重天 2019-06-16
  • 【拜年啦!】强坛嘉宾送祝福,看哪位大咖的心愿戳中你的心! 2019-06-09
  • 山西11选5前三二码遗漏:oracle case when 语句的用法详解

    文章TAG:Oracle case WHEN
    时间:2013-10-05来源:源码库 作者:jingxian 文章热度:
    1. CASE WHEN 表达式有两种形式

    山西十一选五遗漏10 www.fqjb.net 复制代码 代码如下:


    --简单Case函数 
    CASE sex 
    WHEN '1' THEN '男' 
    WHEN '2' THEN '女' 
    ELSE '其他' END 
    --Case搜索函数 
    CASE
    WHEN sex = '1' THEN '男' 
    WHEN sex = '2' THEN '女' 
    ELSE '其他' END 


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

    复制代码 代码如下:


    SELECT   grade, COUNT (CASE WHEN sex = 1 THEN 1      /*sex 1为男生,2位女生*/
                           ELSE NULL
                           END) 男生数,
                    COUNT (CASE WHEN sex = 2 THEN 1
                           ELSE NULL
                           END) 女生数
        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 1
                  WHEN T2.COMPARE_TYPE != 'A' AND
                       T1.SOME_TYPE NOT LIKE 'NOTHING%'
                    THEN 1
                  ELSE 0
               END) = 1


    2.3 GROUP BY CASE WHEN 用法

    复制代码 代码如下:


    SELECT 
    CASE WHEN salary <= 500 THEN '1' 
    WHEN salary > 500 AND salary <= 600  THEN '2' 
    WHEN salary > 600 AND salary <= 800  THEN '3' 
    WHEN salary > 800 AND salary <= 1000 THEN '4' 
    ELSE NULL END salary_class, -- 别名命名
    COUNT(*) 
    FROM    Table_A 
    GROUP BY 
    CASE WHEN salary <= 500 THEN '1' 
    WHEN salary > 500 AND salary <= 600  THEN '2' 
    WHEN salary > 600 AND salary <= 800  THEN '3' 
    WHEN salary > 800 AND salary <= 1000 THEN '4' 
    ELSE NULL END; 


    3.关于IF-THEN-ELSE的其他实现
    3.1 DECODE() 函数

    复制代码 代码如下:


    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%')


    这种方法也是在特殊情况下使用,要多注意逻辑,不要弄错。
    相关oracle教程
    相关资源下载

  • 商务部新闻发言人就6月15日美方公布对华贸易措施发表谈话 2019-07-10
  • 点球争议!C罗那一球到底该不该判 西媒也分裂了 2019-07-08
  • 那块“没用”的上海牌手表 2019-07-08
  • 统帅关怀励兵心 矢志强军谋打赢——习近平视察北部战区海军发表的重要讲话在全军和武警部队引起热烈反响 2019-07-07
  • 世界杯-绝杀!乌拉圭1-0埃及取开门红 苏神四失良机 2019-07-03
  • 土地是自然存在的地球的一部分,不是人类劳动成果,正如“深山老林”是自然存在的地球的一部分,不是人类劳动成果一样。懂吗? 2019-06-30
  • 宝鸡消防—宝鸡市消防支队 2019-06-26
  • 【学习时刻学思践悟十九大①】人民大学马亮:在新时代增强党的改革创新本领 2019-06-26
  • 两个后卫没防住!阿圭罗转身爆射破门! 2019-06-24
  • 南宁以秀美市容环境迎"两会" 舒适广场获市民点赞 2019-06-22
  • 四平市:实施“五安工程” 激活平安细胞 2019-06-18
  • 福建网友给人民网《地方领导留言板》的留言,领导回复了吗? 2019-06-18
  • 5G标准出炉!与4G有啥不一样? 或1秒内下载1G电影 2019-06-16
  • 一二线城市土地出让冰火两重天 2019-06-16
  • 【拜年啦!】强坛嘉宾送祝福,看哪位大咖的心愿戳中你的心! 2019-06-09
  • 双色球16009期蓝球预测 宁夏十一选五 湖北十一选五开奖走势图百度乐彩 七乐彩59期开奖视频 天津快乐十分模拟摇奖器 体彩快乐赛车 安徽十一选五今天预测号码 三肖中特期期准黄大仙i百度 七星彩走势图近260期 上海时时彩开奖现场 新疆11选5数据 4串11全对奖金怎么算 辽宁11选5哪里查 快速时时彩秘籍 足球有奖金