我们可以从SQL Server中选择Top 10或Select Top 'N'行。
Top 10
Select Top 'N'
但是有什么方法可以从top的结果中跳过第一行?
我的意思是我从获得结果select top 5,然后跳过第一行,仅获得接下来的4行?
select top 5
您可以使用OVER子句和排名功能。您不能直接对此进行过滤,因此需要我们一个子查询或一个公共表表达式,下面的示例使用后者。
OVER
DECLARE @MyTable TABLE ( ID INT, Name VARCHAR(15) ); INSERT INTO @MyTable VALUES (1, 'Alice'); INSERT INTO @MyTable VALUES (2, 'Bob'); INSERT INTO @MyTable VALUES (3, 'Chris'); INSERT INTO @MyTable VALUES (4, 'David'); INSERT INTO @MyTable VALUES (5, 'Edgar'); WITH people AS ( SELECT ID, Name, ROW_NUMBER() OVER (ORDER BY ID) RN FROM @MyTable ) SELECT ID, Name FROM people WHERE RN > 1;
在下一版本的SQL Server(代号Denali)中,使用OFFSET和FETCH关键字将更好地支持分页。
OFFSET
FETCH