SQL中排序函数的用法

SQL中的排序函数有三:1、row_number() over();2、rank() over();3、dense_rank() over(),具体用法如下:

1.row_number() over(partition by 列名 order by 列名 [desc])

其中,partition by 是分组,在组内各自排序。
row_number()函数是一般的排序函数,如有重复,则排序也是一直递增

2.rank() over(partition by 列名 order by 列名 [desc])

rank()函数是跳跃排序,如有两个第2名,则排序后为1.2.2.4名,其他与row_number()无异

3.dense_rank() over(partition by 列名 order by 列名 [desc])

dense_rank()函数是连续排序,如有两个第2名,则排序后为1.2.2.3,其他与row_number()无异

注:这几个函数都只能在SQL server中使用,MySQL中无法使用

4.在Mysql中可以间接实现排序的功能

如下所示:

set @a = 0;
select *,@a := + 1 as rank
from table_name
order by column_name

此时,新增一个变量@a,这样最后会出现排序列rank。如果有两个一样的数据,此功能排序后名次也是递增的,相当于一般的排序函数row_number().

Mysql实现rank函数以及dense_rank函数的功能暂未实现。

posted on 2018-11-01 22:21  小马927  阅读(1308)  评论(0)    收藏  举报

导航