要正常分页选择查询,我会这样做:
SELECT * FROM items WHERE condition = 1 LIMIT $start, $items
但是,在MSSQL中没有LIMIT条件,所以我尝试了:
SELECT * FROM items WHERE condition = 1 OFFSET $start ROWS FETCH NEXT $items ROWS ONLY
我收到错误:
42000 - [SQL Server] FETCH语句中NEXT选项的使用无效。
那么究竟应该对分页结果做些什么呢?
答案 0 :(得分:4)
这可能会对你有所帮助。
OFFSET-FETCH
子句为您提供了从结果集中仅获取结果窗口或页面的选项。 OFFSET-FETCH
只能与ORDER BY
子句一起使用。
SELECT P_Name FROM ITEMS ORDER BY P_Name OFFSET 10 ROWS;
SRC:https://technet.microsoft.com/en-us/library/gg699618.aspx
答案 1 :(得分:0)
与MySQL的LIMIT子句相当的MS SQL是TOP。
SELECT TOP 10 * FROM items WHERE condition = 1;
将返回前十行,就像在这里使用LIMIT一样:
SELECT * FROM items WHERE condition = 1 stuff LIMIT 10;
有关详细信息(因为我不知道您的代码的所有上下文),您可以查看here。