SQL Server CESQL Server 2014SqliteSQL Server 2000SQL Server 2012SQL Server 2008R2SQL Server 2008SQL Server 2005SQL Server
一种简单且新颖的方法,用于从表中查找第 n 大数值的行






4.71/5 (5投票s)
从表中获取第 n 大数值的行的一个简单技巧
引言
这是一个从表中获取第 n 大数值的行的非常简单的技巧。 在此技巧中,我使用了公共表表达式 (CTE) 和 DENSE_RANK()
函数。 要了解有关 CTE 的更多信息,请点击 此链接,对于 DENSE_RANK()
,请点击 此链接。
Using the Code
下面给出一个简单的代码片段
--START TO GET N'TH HIGHEST NUMBER/SALARY
DECLARE @g_query AS VARCHAR(256)
DECLARE @g_nth_highest AS INT
DECLARE @g_nth_row AS INT
SET @g_nth_height = 7;
SET @g_nth_row = 3;
SET @g_query =
'WITH CTE_RESULT AS
(
SELECT ct_salary, DENSE_RANK() OVER
(
ORDER BY ct_salary DESC
) AS DENSERANK_RESULT FROM T_EMPLOYEE
)
SELECT TOP '+ CONVERT(VARCHAR, @g_nth_row) + _
' ct_salary AS SALARY FROM CTE_RESULT WHERE CTE_RESULT.DENSERANK_RESULT =' + _
CONVERT(VARCHAR, @g_nth_highest);
EXEC(@g_query)
-- END
结论
希望大家能理解这个场景,并且对大家有所帮助。 享受吧!
历史
- 2015年12月22日星期六:初始发布