博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle CASE WHEN 用法介绍
阅读量:4933 次
发布时间:2019-06-11

本文共 1723 字,大约阅读时间需要 5 分钟。

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

--简单Case函数  CASE sex  WHEN '1' THEN '男'  WHEN '2' THEN '女'  ELSE '其他' END  --Case搜索函数  CASEWHEN 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                             ELSE NULL                       END) 男生数,                COUNT (CASE WHEN sex = 2 THEN 1                       ELSE NULL                       END) 女生数    FROM students GROUP BY grade;

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

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

转载于:https://www.cnblogs.com/CandiceW/p/6829559.html

你可能感兴趣的文章
Java .class文件反编译后的特殊代码还原
查看>>
一点点linux系统的学习心得
查看>>
11.13 js操作css样式
查看>>
支持向量机
查看>>
volatile的不保证原子性
查看>>
static 关键字的作用
查看>>
hyper-V下虚拟机连接外网,怎么才能将Hyper-V 的虚拟机接入互联网?
查看>>
[LeetCode] 275. H-Index II H指数 II
查看>>
别人整理的DP大全(转)
查看>>
爬楼梯(go语言实现)
查看>>
正则1
查看>>
xpath定位中starts-with、contains和text()的用法
查看>>
AP模式(路由器的几种模式)
查看>>
WPF Canvas实现进度条
查看>>
Printf的缓冲机制
查看>>
Excel Sheet Column Title
查看>>
10247 - Complete Tree Labeling(递推高精度)
查看>>
Swift编程权威指南(第2版)pdf
查看>>
SpringMVC Validation验证(帖子最后有个问题,麻烦大神指点一下)
查看>>
基于Laravel+Swoole开发智能家居后端
查看>>