oracle12c order by,oracle 数据库中order by 的一些高级用法
oracle数据库中order by用法
oracle数据库中order by的一些高级用法
现有一个表,表内容如下:
以下的操作都是对该表进行的操作
1.按照名称排序(默认为升序)
实现代码:
select * from dp_tourist order by cnname;
实现效果:
2.按照名称升序排序
实现代码:
select * from dp_tourist order by cnname asc;
实现效果:
3.按照名称降序排序
实现代码:
select * from dp_tourist order by cnname desc;
实现效果:
4.先按照名称降序排序,如果名称有一样的,则按照id降序排序
实现代码:
select * from dp_tourist order by cnname desc,id desc;
实现效果:
5.缺省处理:oracle在order by时认为null是最大值, 所以如果是asc升序则排在最后, desc降序则排在最前.我们可以使用nulls first或者nulls last来控制null的位置。
5.1将null放在最前
实现代码:
select * from dp_tourist order by cnname asc nulls first;
实现效果:
5.2将null放在最后
实现代码:
select * from dp_tourist order by cnname desc nulls last;
实现效果:
6.名称有带“深圳”的先显示,其余的按照名称升序排序
6.1方法一:
实现代码:
select * from dp_tourist d1 where d1.cnname like '%深圳%'
Union all
select * from (select * from dp_tourist d2 where d2.cnname not like '%深圳%' order by d2.CNNAME asc);
实现效果:
6.2方法二:
实现代码:
select * from dp_tourist
order by
case
when cnname like '%深圳%' then 0
else 1
end,cnname asc;
实现效果:
比较: 方法1中,null值不存在,方法2中,null值存在
7.按照id为94的排到第一位
实现代码:
select * from dp_tourist order by decode(id, 94,4);
实现效果:
8.按照id为94的排到第一位,其余按照id降序排序
实现代码:
select * from dp_tourist order by decode(id, 94,4), id desc;
实现效果:
9.把id当成分数,按照分数等级排序
DECODE函数的语法:DECODE(value,if1,then1,if2,then2,if3,then3,…,else);
DECODE函数说明:表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。
**sign函数语法:sign(n); **
**sign函数说明:取数字n的符号,大于0返回1,小于0返回-1,等于0返回0(n可以是表达式,(n-200))。 **
实现代码:
select id 评分,cnname 名称, decode(sign(id-85),1,'优秀',0,'优秀',-1,
decode(sign(id-70),1,'良好',0,'良好',-1,
decode(sign(id-60),1,'及格',0,'及格',-1,'不及格'))) 成绩
from dp_tourist
order by
case
when 成绩='优秀' then 0
when 成绩='良好' then 1
when 成绩='及格' then 2
when 成绩='不及格' then 3
else 4
end,id asc;
oracle12c order by,oracle 数据库中order by 的一些高级用法相关推荐
- oracle 数据库中order by 的一些高级用法
oracle数据库中order by用法 oracle数据库中order by的一些高级用法 现有一个表,表内容如下: 以下的操作都是对该表进行的操作 1.按照名称排序(默认为升序) 实现代码: se ...
- oracle 数据库中 connect by 和level 的用法
这几天看sql看到了有关connect by和level的关键字用法,以前都用mysql也没用过这个关键字,感觉挺有用的,就学了下,整理一下学习过程. 首先,connect by和level都是为了快 ...
- oracle中md5算法,oracle数据库中存储过程使用MD5算法加密
一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...
- oracle排序desc和,Oracle数据库排序ORDER BY子句的使用总结篇
在Oracle数据库中,当我们执行查询时,往往要对查询的结果进行排序处理.排序处理是通过ORDER BY子句来实现的.本文我们主要对Oracle数据库查询时的各种排序进行了总结,接下来我们就开始介绍这 ...
- 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...
1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...
- oracle表重命名 索引,CSS_在Oracle数据库中按用户名重建索引的方法,如果你管理的Oracle数据库下某 - phpStudy...
在Oracle数据库中按用户名重建索引的方法 如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大 ...
- Oracle数据库中的级联查询、级联删除、级联更新操作教程
这里整理了Oracle中的三种级联操作,其中Oracle定义外健的时候可以定义级联删除,但是没有级联修改的语法,当然可以用触发器实现,下面我们详细来看Oracle数据库中的级联查询.级联删除.级联更新 ...
- oracle数据库中常用的几个非主流函数
今天我向大家介绍oracle中几个常用但是非主流的函数,有以下几个: COALESCE , DECODE , WM_CONCAT , LISTAGG , ROLLUP , 开窗函数(分析函数) . ...
- Oracle数据库中SQL语句用法(一)
Copyright © 2019 @Linyer. All Rights Reserved 下接Oracle数据库中SQL语句用法(二)[点击以查看] 目录 第1章:编写基本的SQL SELECT语句 ...
最新文章
- Linux中shell命令的用法和技巧
- 【转】apache常用配置
- 2015-08-07get方式/post方式
- docker mysql 报错 “Too many connections 1040“ 修改最大连接数 未生效 解决方法
- 转载:谢谢原作者:块设备驱动实战基础篇四 (逐渐成型,加入ioctl通信机制)
- php软件升级管理系统,POSCMS开源内容管理系统 v3.6.1 升级说明
- 生态和场景一站式集成?来看看小程序的“共享主义”
- Redis数据库(二)——Redis高可用、持久化及性能管理
- 积米浏览器如何清除浏览数据
- Android逆向笔记-IDA Pro动态调试Android程序(真机)
- 如何用孩子兄弟表示法存储树c语言,C语言,数据结构,树的孩子兄弟表示法,程序一切正常,但是有个问题不太懂了,园豆不多,帮帮忙,求助一下....
- Python实现简易的图书借阅管理系统
- 《高等代数学》(姚慕生),习题1.3:n阶行列式
- 本周小折腾记录: ipad和电脑完成同屏功能
- java画脸_用Java画人脸
- ems数字货币运营模式,emstoken是什么,emstoken骗局揭秘
- html 标签置底,学习笔记:让元素永久置底的几种方案(css only)
- dede密码修改 php,dede忘记后台密码修改程序
- 智能暖风机——3.利用B3950实现温度采集功能
- 2022-2028全球房地产众筹平台行业调研及趋势分析报告
热门文章
- 【干货】百度知识中台白皮书:从数据到知识,知识中台赋能企业智能化升级.pdf(附下载链接)...
- 炸裂!微信支付的架构太牛了!(微信跨平台开发框架)
- 关于智能推荐的几点思考
- 通俗易懂!视觉slam第九部分——光流(Optical Flow)
- 业界分享 | 美团搜索排序实践
- 浅谈 多任务学习 在推荐系统中的应用
- mha数据备份_MySQL备份与恢复之保证数据一致性(5)
- signature=0880bf79d1c426abd0c8ca4bc897d06f,index.html
- Leetcode每日一题:175.组合两个表
- Github的介绍、使用、安装以及个人博客的搭建、美化