oracle中如何更改order by的默认排序?
来源:互联网 发布:xp linux双系统引导 编辑:程序博客网 时间:2024/06/01 09:22
oracle中如何更改order by的默认排序?
直接看问题:
select * from scott.emp p order by p.job;
运行结果为:
通过order by 出来的排序结果以此为:ANALYST、CLERK、MANAGER、PRESIDENT、SALESMAN...
需求:
现要求排序结果为MANAGER为第一个显示、CLERK为第二个显示,其他默认排序
方法一:
通过union all 分别查询后合并实现。
select * from (select * from scott.emp where job in 'MANAGER' order by job)union allselect * from (select * from scott.emp where job = 'CLERK' order by job)union allselect * from (select * from scott.emp where job not in ('MANAGER', 'CLERK') order by job)
运行结果为:
备注:
1、这里应该采用union all 进行并集,不应该使用union。因为union,会对结果集进行排序,而union all 不排序。
2、这里的子查询中如果有order by 语句,不能直接使用union all 进行并集,会报语法错误。解决方案是将结果集作为一个新的表,查询后再并集,即可。
方法二:
虚拟出来一个字段,规定排序规则,依据新的排序规则进行排序即可。
select p.*, case to_char(p.job) when 'CLERK' then '2' when 'MANAGER' then '1' else '999' end neworder from scott.emp p order by neworder,p.job
运行结果:
0 0
- oracle中如何更改order by的默认排序?
- oracle 无order by , 默认排序问题
- ORACLE中排序ORDER BY
- sqlserver 和Oracle中 order by(排序)的区别
- sqlserver 和Oracle中 order by(排序)的区别
- DB2中 rownumber() over( order by)是如何排序的?
- oracle 默认排序问题 和 order by ,rowid
- ORACLE的order by中文排序
- oracle 数据库 order by 排序的使用
- 各个数据库的无order by时的默认排序
- order by 语句对null字段的默认排序
- order by 语句对null字段的默认排序
- order by 语句对null字段的默认排序
- order by 语句对null字段的默认排序
- order by 语句对null字段的默认排序
- order by 语句对null字段的默认排序
- oracle使用order by排序null值如何处理
- oracle order by排序总结
- Java:单例模式的7种写法
- LDS文件格式简单用法备注
- 移动端H5页面高清多屏适配方案
- 成为JavaGC专家(2)
- Android Java与C++的调用
- oracle中如何更改order by的默认排序?
- VBA学习笔记(1)
- hdfs sync的同步代码重构
- Android开发_控制硬加速hardwareAccelerated
- Oracle表空间、段、区和块简述
- 【小镇的技术天梯】Fast-CGI和php-fpm之间的关系
- 磁盘及文件系统管理(分区,挂载,卸载,信息展示与统计)
- 哈希冲突之开链法
- Spark机器学习读书笔记