65.9K
CodeProject 正在变化。 阅读更多。
Home

一种简单且新颖的方法,用于从表中查找第 n 大数值的行

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.71/5 (5投票s)

2015年12月23日

CPOL
viewsIcon

9727

从表中获取第 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日星期六:初始发布
© . All rights reserved.