ORACLE 分析函数应用(一) 记录排名
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,初学PL/SQL。在oracle中,使用RANK,DENSE_RANK和ROW_NUMBER这3个分析函数都可以进行对记录的编号,在处理记录排名方面可以考虑使用以上三种方法之一。RANK:通过对ord
千家信息网最后更新 2026年11月03日ORACLE 分析函数应用(一) 记录排名
初学PL/SQL。
在oracle中,使用RANK,DENSE_RANK和ROW_NUMBER这3个分析函数都可以进行对记录的编号,在处理记录排名方面可以考虑使用以上三种方法之一。
RANK:通过对order by 后的条件,对每一行进行编号,当比较字段相等时,两行拥有相同的编号,接下来的下一条记录进行跳号。
DENSE_RANK:排序方式同RANK,比较字段相等的记录同样拥有相同编号,接下来的下一条记录不跳号,拥有连续的编号。
ROW_NUMBER:排序方式同RANK,即使存在重复条件的记录,编号也是始终递增,拥有连续的编号。
建立emp员工表
create table emp ( empno number primary key, ename varchar2(20) not null, deptno varchar2(20) not null, sal number , hiredate date not null);
现在,需要对 emp表中不同部门的员工进行薪水的排名。
select e.*,RANK() over (partition by deptno order by sal desc nulls last) rank排名, DENSE_RANK() over (partition by deptno order by sal desc nulls last) dense排名, ROW_NUMBER() over (partition by deptno order by sal desc nulls last) row排名 from emp e order by deptno;
获得结果如下:
比较第五条记录的rank排名和dense排名就会得到跳号与不跳号的区别,而ROW_NUMBER不论比较条件的值是否是相同的,总是会顺序递增的进行编号。这三种不同函数适用于不同的业务场景。
另:null在窗体中会排在其他值的前面,使用 NULLS LAST 语句,使得null值排在最后。
不同
相同
条件
函数
接下来
员工
字段
方式
排序
分析
一行
业务
场景
方法
方面
窗体
结果
薪水
语句
部门
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
亿人帮互联网科技有限公司
互联网科技行业发展
科技互联网项目
互联网核心科技是什么
互联网科技战争
赫美联合互联网科技
互联网科技论坛
中正互联网科技招聘
科技与互联网的利与弊
深圳国际航运科技和互联网
哈尔滨新华互联网科技学院
中化能源互联网科技招聘
新兴科技互联网创新大赛颁奖典礼
广州富喜互联网络科技
易企秀互联网科技是做什么的
九思连强互联网电子科技有限公司
科技互联网行业投资研究
科技和互联网行业的特点
互联网科技和医药行业
互联网科技创业计划的风险分析
云南咖啡
有格互联网科技
互联网金融和金融科技
成都互联网科技公司100强
和信科技工业互联网
科技赋能视角下互联网保险发展
山东星卡互联网科技有限公司官网
城市宝互联网科技有限公司
富国互联网科技002692
互联网科技职业技能培训学校