Select SQL 服务器范围内的最大条目数

Select max entries in a range in SQL server

我有一个薪水列,我必须在其中 select 介于 10000 和 20000 之间的范围以及最高薪水的前几行。

我有的栏目:

25000
17000
17000
15000
14000
9000

我想要的行 select

17000
17000
17000

我可以使用前 n 行,但这将应用于此列。我想做的是,如果这一列有 2 行有最高工资,它会 select 2,但如果另一列有 5 行有最高工资,如下所示,那么它应该 select 5. 我的专栏:

24000
17000
17000
17000
17000
17000
15000
14000
9000

我想要的行 select:

17000
17000
17000
17000
17000

我的sql声明:

select max(salary)
from table
where salary between 10000 and 20000
order by salary desc;

此语句仅returns 1行。

您可以在此处使用 TOP 1 WITH TIES

SELECT TOP 1 WITH TIES salary
FROM yourTable
WHERE salary BETWEEN 10000 AND 20000
ORDER BY salary DESC;