首页 > 解决方案 > sql rank 显示请求的rank数

问题描述

询问:

SELECT distinct 
rank() OVER (ORDER BY p.service) as rank,
p.service, 
From table_service
Where 1=1

输出:
等级:1 | 服务:test1
排名:2 | 服务:test2
排名:3 | 服务:test3

我怎样才能只显示 Rank 2 ?

我试过这个但不工作:

SELECT distinct 
rank() OVER (ORDER BY p.service) as rank,
p.service, 
From table_service
Where rank = 2

任何想法?

标签: sqlrank

解决方案


您可以尝试使用子查询,因为where不能使用别名来做条件。

SELECT * FROM (
    SELECT 
        rank() OVER (ORDER BY p.service) as rank,
        p.service, 
    From table_service
) t1
where rank = 2

推荐阅读