如何在查询结果中获得第n行?

pen*_*ake 2 sql t-sql

如何获得TSQL查询结果的第n行?

让我们说,我想得到这个SELECT的第二行:

SELECT * FROM table
ORDER BY 2 ASC
Run Code Online (Sandbox Code Playgroud)

Hac*_*ese 6

您要定位哪个版本的SQL Server?如果是2005或更高版本,则可以使用ROW_NUMBER生成行号并使用该编号进行选择.http://msdn.microsoft.com/en-us/library/ms186734.aspx

WITH orderedtable AS
(
    SELECT *, ROW_NUMBER() OVER (ORDER BY <your order here>) AS 'RowNumber'
    FROM table
) 
SELECT * 
FROM orderedtable 
WHERE RowNumber = 2;
Run Code Online (Sandbox Code Playgroud)