小编典典

跳过SQL Server 2005中的第一行?

sql

我们可以从SQL Server中选择Top 10Select Top 'N'行。

但是有什么方法可以从top的结果中跳过第一行?

我的意思是我从获得结果select top 5,然后跳过第一行,仅获得接下来的4行?


阅读 178

收藏
2021-03-23

共1个答案

小编典典

您可以使用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)中,使用OFFSETFETCH关键字将更好地支持分页。

2021-03-23