病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« 打印机文件夹打不开腾讯电脑管家开机时间与常用网站的关闭 »

Oracle用于排名的函数

  rank()在Oracle中可用于排名,属于分析函数,rank() over ([partition by 分区字段1[,分区字段2...] order by 排序字段 asc|desc)。

  分区字段可有多个,用逗号分隔,也可使用函数,如rank over (partition by 部门,trunc(日期,'mm') order by 钱 asc),,这样就分部门按月份对发的钱进行排序。asc是升,desc是降。

  rank()的排名是不连续的,如果存在并列名次的话,如并列第一后面就是第三名,要得到连续排名,如并列第一后为第二,就要用dense_rank()代替rank(),其余一样。

  null在rank()中会排在最前面,可在最后加nulls last把null值扔到最后,如rank() over ([partition by 分区字段1[,分区字段2...] order by 排序字段 asc|desc nulls last)。

  使用中,rank不用单独成一列,在SQL语句中的位置与使用比较灵活,如

select 部门,姓名,decode(部门,'总经理室',case when rank() over (partition by 公司,部门,trunc(发薪日期,'mm') order by 工资 desc)<=3 then '很多' else '呵呵' end,'嘿嘿') 评价 from 工资表 where 公司='xxx’

上面随便写的,不知道有没有语法错误,大体意思是这样,只对某公司的总经理室每月的排名进行处理,其它的不处理(当然排名是有排名,只是在语句里不用处理)。

Oracle用于排名的函数


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1766.html

  • 微信订阅号
    微信订阅

最新发表

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2016 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog. 闽ICP备09000343号

闽公网安备 35010202000133号