某些数据库支持以下命令:
SELECT TOP 10 START AT 10 * FROM <TABLE>
Run Code Online (Sandbox Code Playgroud)
基本上我需要拉出前10个记录,然后是接下来的10个记录,然后是接下来的10个等等.也许有另一种方法可以做到这一点,但过去我已经像上面那样支持'START AT'的数据库了.
SELECT *
FROM <TABLE>
ORDER BY <SomeCol>
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)
哪个版本的SQL Server?
在SQL Server 2000中,这是一个真正的痛苦(虽然可能使用像stingyjack发布的丑陋技巧).
在2005年及以后,它更容易一点 - 看看Row_Number()函数.
而且,根据您的客户端应用程序,它甚至可能不那么难.一些ASP.Net网格控件支持自动分页.