如何使用SQL查询检索表中的第7行

时间:2014-04-16 01:55:46

标签: sql-server sql-server-2008

我有一个包含一些记录的表,表示该表是Student,它有一个名为total_mark的列。现在我需要从total_mark列中获取总数第7位的学生的详细信息。如何在SQL SERVER 2008中执行此操作?

3 个答案:

答案 0 :(得分:2)

首先,定义你的意思" 7th"。 7岁?智商第7名?第7高?不管。

WITH
RankedStudents AS ( 
    SELECT *, ROW_NUMBER() OVER ( ORDER BY <Whatever> ) AS RowNumber FROM <Schema>.<Object>
)
SELECT * 
FROM RankedStudents 
WHERE RowNumber = 7 ;

答案 1 :(得分:1)

首先选择前7位,然后反转排序,只取第一行:

SELECT TOP 1 * FROM (
    SELECT TOP 7 *
    FROM RankedStudents 
    ORDER BY total_mark desc) x
ORDER BY total_mark 

答案 2 :(得分:0)

试试这个

WITH CTE AS(
SELECT total_mark,RANK() OVER (ORDER BY total_mark DESC)AS RANKED FROM SN_DB)
SELECT DISTINCT * FROM CTE   WHERE RANKED = 7