oracle case when then
来源:互联网 发布:淘宝古典吉他 编辑:程序博客网 时间:2024/04/29 22:41
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 /*sex 1为男生,2位女生*/ 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%')
这种方法也是在特殊情况下使用,要多注意逻辑,不要弄错。
0 0
- oracle case when then
- oracle case when then
- oracle case when then
- Oracle case when then else
- oracle case when then 条件判断
- oracle left join case when then
- Oracle中的case when then 用法.
- [ORACLE] case when then else end 应用
- [ORACLE] case when then else end 应用
- oracle case when then end 语句
- oracle case when then else end
- [ORACLE] case when then else end 应用
- [ORACLE] case when then else end 应用
- [ORACLE] case when then else end 应用
- oracle 存储过程 case when then
- case when then else
- mssql ,case ,when,then
- case when then else
- 开发Android应用程序,原生开发VS中间件
- java正则表达式中 \d \D 有什么区别?
- Windows下Android NDK r9 + OpenCV2.4.9开发环境搭建
- 一看就明白的爬虫入门讲解:基础理论篇
- property和constructor-arg的
- oracle case when then
- Testlink1.9.2 整合 Bugfree3.0.3 过程详解
- MySQL和Gbase中information_schema是什么
- Qt setwindowflags
- 归并排序
- PHP服务器信息探针可以检测网络流量,CPU,硬盘,内存使用情况,网站管理员必备
- runtime 运行时机制 完全解读
- Meteor 入门开发
- Android 查看wifi密码