Oracle CASE WHEN 用法介绍

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


--简单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 NULLEND) 男生数,COUNT (CASE WHEN sex = 2 THEN 1ELSE NULLEND) 女生数FROM students GROUP BY grade;

2.3 WHERE CASE WHEN 用法

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

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

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

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

转载于:https://blog.51cto.com/xingyuanhan/1349305

关于sql中case when的用法相关推荐

  1. Case When语句详解SQL中Case When的用法

    SQL中case when的用法 case when类似于编程语言中的if else判断.switch case语句.该语句执行时先对条件进行判断,然后根据判断结果做出相应的操作. Case具有两种格 ...

  2. 【SQL中case then的用法】

    SQL中case then的用法   当我们需要从数据源上直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用CASE THEN这个函数了.   其中case then有两种格式: 1.第一种 ...

  3. sqlserver中能用when_【SQL】SQL中Case When的用法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASEsexWHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END -- ...

  4. SQL中case when then用法

    大概用法 --简单case函数 case sexwhen '1' then '男'when '2' then '女'else '其他' end --case搜索函数 case when sex = ' ...

  5. sql server中case when的用法

    CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END 注:sql server中case when的用法 - 哦呵呵G - 博客园 --同样的 ...

  6. sql中日期函数的用法

    sql中日期函数的用法   <script src="http://blog.csdn.net/count.aspx?ID=1920773&Type=Rank" ty ...

  7. SQL中decode函数的用法

    SQL中decode函数的用法 2008-07-30 17:11:14 本文已公布到博客频道职场·创业分类 DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司 ...

  8. sqlserver中case when then用法

     sqlserver中case when then用法 (2014-04-14 17:11:06) 标签: it 分类: 数据库-SQLServer sql语句判断方法之一  Case具有两种格式 ...

  9. SQL中object_id函数的用法

    SQL中object_id函数的用法 收藏  int object_id('objectname'); 此方法返回数据库对象标识号. 其中,参数objectname 表示要使用的对象,其数据类型为nc ...

最新文章

  1. Redis的keys命令到底有多慢?
  2. [MSSQL2012]LEAD函数
  3. mysql每个类型查三条_Mysql的几个灵魂拷问(三)
  4. Caffe上用SSD训练和测试自己的数据
  5. 第一个 Windows 应用程序
  6. 网络编程(part4)--刷新缓冲区
  7. 会计电算化的重要物质基础计算机和,湖北工业大学工程技术学院会计电算化管理办法...
  8. UML九种图 之 包图和对象图
  9. 如何在一周内上线50个用户增长策略
  10. 新来的同事把公司现有项目的性能优化了一遍,来看看他是怎么做到的
  11. UI设计师必备知识|最全UI设计规范!
  12. beego mysql session_Go语言之高级篇beego框架之cookie与session
  13. 型材机柜您了解多少?
  14. 问个globle的问题,如何定时更新论坛的数据啊?
  15. 局域网计算机加密共享文件,局域网共享文件,小编教你局域网共享文件怎么加密...
  16. 股票和外汇究竟哪个更存在风险呢?
  17. CCF考试——201312-5I’m stuck!
  18. JQuery实现简易音乐播放器
  19. 上海气象局 mysql_根据中国气象局提供的API接口实现天气查询
  20. Sign In with Apple - 使用苹果账号登录你的应用

热门文章

  1. deepin10.15安装cuda10.1.168 cudnn7.6.1 tensorflow_gpu1.4.0
  2. springmvc 传对象报400_源码导读:深入理解SpringMVC报400时的流程
  3. linux系统进入管理员命令行,Linux的15个命令行别名,帮系统管理员提升工作效率!...
  4. android 自定义键盘高度不对,NVUE 容器一旦设置了position且容器高度不能超过整屏,在安卓端就会被键盘遮挡...
  5. 如何自学Python?这本技术大咖推荐Python书籍,就是你的第一选择
  6. 超级黑科技代码!Python打造电脑人脸屏幕解锁神器附带接头暗号
  7. 0基础学习数据分析必须掌握的技能有哪些?
  8. python程序员最害怕的东西,面试!恭喜你收到了offer,来看下吧
  9. 那个计算机应用没有广告,为什么别人的电脑没有什么广告,而你的电脑一大堆呢?答案在这里...
  10. 成为多编程语言人才的诀窍你想知道吗