当前位置: 首页 > 面试题库 >

跳过SQL Server 2005中的第一行?

胡景焕
2023-03-14
问题内容

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

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

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


问题答案:

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



 类似资料:
  • 问题内容: 我正在使用以下内容读取文件的各行, 现在,我想跳过读取文件的第一行,并且不想使用计数器行来保持行数。 这该怎么做? 问题答案: 你可以试试这个

  • 问题内容: 编辑:感谢你们的快速反应-我最终切换到mysql_fetch_assoc()并使用do … while,我很高兴。 我正在使用相同的过程来创建和填充表-一切正常,除了 在每个表中跳过第一行 。由于我似乎无法查明问题,可以用另一双眼睛。提前致谢。 问题答案: 您正在调用mysql_fetch_array两次…循环前一次,循环时一次。 如果您需要种子行来构建标题行,则最好在此处使用do .

  • 问题内容: 我见过其他有此问题的人,但我见过的解决方案没有帮助我,或者我不知道如何使用它们:P 我的代码正在跳过数据库的第一行,但我不明白为什么。 问题答案: 删除行: 该循环将抢在第一次循环中的第一行。 结果代码:

  • 我使用下面的读取文件的行, 现在,我想跳过读取文件的第一行,我不想使用计数器行来记录行数。 这要怎么做?

  • 问题内容: 我想跳过ng-repeat中的第一项 它不起作用,这里有什么问题吗? 我知道我可以使用ng-if,ng-show来隐藏东西,但是我无法理解为什么在这种情况下过滤器在1.3.x中不起作用。 谢谢。 问题答案:

  • 问题内容: 我有一个csv文件,我从csv文件中读取数据,然后我想跳过csv文件的第一行,其中将包含任何标题。我正在使用此代码。 当我将数据插入数据库时​​,标头不应保存到数据库中。 问题答案: 尝试: