为什么此查询在Sql Server 2008中不起作用?
Select Top @PageSize Skip @Page * @PageSize * From someTable
奇怪的是,即使这不起作用: -
Select Top @PageSize * From Tree
但是这个有效: -
Select Top 10 * From Tree
此声明在存储过程中。
提前致谢:)
答案 0 :(得分:2)
您的第一个查询根本不是有效的语法。
第二个只需要括号(并且应该有一个ORDER BY
)
Select Top (@PageSize) *
From Tree
ORDER BY /*TODO: Add column(s)*/
为了达到您在第一种情况下显然要做的事情,您可以使用ROW_NUMBER
和BETWEEN
,如此答案T-SQL Skip Take Stored Procedure
答案 1 :(得分:2)
你需要括号
Select Top ( @PageSize ) * From Tree
然而,没有它的顺序没有多大意义
SKIP是无效的SQL Server语法,第一个查询无法正常工作