跳过 SQL Server 2005 中的第一行? [英] Skip first row in SQL Server 2005?

查看:40
本文介绍了跳过 SQL Server 2005 中的第一行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

We can select Top 10 or Select Top 'N' row from SQL Server.

但是有没有办法从 top 的结果中跳过第一行??

But is there any way to skip first row from the result of top??

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

I mean I get result from select top 5, then I skip the first row and get only next 4 rows?

推荐答案

您可以使用 OVER 子句和排名函数.你不能直接过滤这个,所以你需要我们一个子查询或一个公用表表达式,下面的例子使用后者.

You can use OVER clause and a ranking function. You can't filter on this directly so you need to us a sub query or a common table expression, the example below uses the latter.

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 关键字更好地支持分页.

There will be better support for pagination in the next version of SQL Server (codename Denali) with the OFFSET and FETCH keywords.

这篇关于跳过 SQL Server 2005 中的第一行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆