在MS-SQL中是否有'START AT'等价物?

Dou*_*son 10 sql sql-server

某些数据库支持以下命令:

SELECT TOP 10 START AT 10 * FROM <TABLE>
Run Code Online (Sandbox Code Playgroud)

基本上我需要拉出前10个记录,然后是接下来的10个记录,然后是接下来的10个等等.也许有另一种方法可以做到这一点,但过去我已经像上面那样支持'START AT'的数据库了.

Mar*_*ith 7

对于SQL Server 2012

SELECT * 
FROM <TABLE>
ORDER BY <SomeCol>
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)


Joe*_*orn 5

哪个版本的SQL Server?

在SQL Server 2000中,这是一个真正的痛苦(虽然可能使用像stingyjack发布的丑陋技巧).

在2005年及以后,它更容易一点 - 看看Row_Number()函数.

而且,根据您的客户端应用程序,它甚至可能不那么难.一些ASP.Net网格控件支持自动分页.