SQL排序函数

1.ROW_NUMBER()

将select查询到的数据进行排序,每一条数据加一个序号,一般用于分页查询

排列出的序号不同

(1)对学生成绩排序

select row_number() over(order by score desc) number, * from student;

此处的number就是学生的名次

(2)获取第二个学生的成绩信息

select * from (

select row_number() over(order by studentscore desc) number,* from student

)t  where t.number=2

where t.number>=1 and t.number<=10,获取的就是前十名学生的信息

2.RANK()

对某一字段进行排序,存在相同值时,排序相同,下面的排序是连续的,如1,1,2

(1)对学生成绩排序

select rank() over(order by score desc) number, * from student;

按班级分组:

select rank() over(partition by classid order by score desc) number, * from student;

 

3.DENSE_RANK()

对某一字段进行排序,存在相同值时,排序相同,下面的排序是不连续的,如1,1,3

(1)对学生成绩排序

select dense_rank() over(order by score desc) number, * from student;

4.NTILE()

将有序分区中的行分发到指定数目的组中,各个组有编号,编号从1开始,

例:

select ntile(1) over(order by score desc) number, * from student;

select ntile(2) over(order by score desc) number, * from student;

select ntile(3) over(order by score desc) number, * from student;

 

 查询3次,有3个分区

posted @   zhou&zhou  阅读(1777)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示