drop table if exists SC;
create table SC(
Sno char(10),
Cno char(10),
Grade smallint not null,
constraint pk_sno primary key (sno,cno)
)
首先简单创建一个表,并为其插入主码
Insert Into SC (Sno ,Cno,Grade) Values
('2000011111','1000000001',88),
('2000011111','1000000004',88)
并向其中插入一些数据,这里简单示范一下
查看一下表:
select * from sc;
下面分别用三种排序方式进行查询:
select sno, grade,
dense_rank() over(order by grade desc) denseRank,
rank() over(order by grade desc) Rank,
row_number() over(order by grade desc) rowRank
from sc
查询结果:
这里注意一下对列的重命名不能和函数重名,否则会报错。
返回结果很直观地反应了三个函数的差别,相信大家都清楚三者区别了。