我在下面给出了表格
ID NAME
1 100
2 90
3 80
4 70
5 60
6 60
7 60
如果表中第6和第7条记录的值与第5条相同,那么它将返回第6和第7条。但是,如果它与第5个不同,那么它将只返回前5个记录。
提前致谢!!!
答案 0 :(得分:1)
假设您需要5个顶级唯一值,则可以使用DENSE_RANK()
select id,name from
(select id, name, DENSE_RANK() OVER(ORDER BY Name DESC) as r from tbl ) t
where r<=5
答案 1 :(得分:0)
试试这个。
SELECT ID, Name
FROM dbo.Tablename
WHERE Name IN (SELECT TOP 5 Name FROM dbo.Tablename order by Name desc)
order by Name desc
答案 2 :(得分:0)
select top 5 WITH TIES id, name from t order by name desc
答案 3 :(得分:-1)
您还可以使用与RANK()
DENSE_RANK()
尝试以下查询 -
select id,name from
(select id, name, RANK() OVER(ORDER BY Name DESC) as r from yourtbl) t
where r<=5