【发布时间】:2016-07-08 05:47:48
【问题描述】:
我有一个简单的要求,我想跳过“N”行并获取所有可用的数据。我需要它作为我的存储过程的一部分,例如
WHERE /*some condition*/
ORDER BY
/* some case statement */
OFFSET @SkipRows ROWS FETCH NEXT @TakeRows ROWS ONLY
现在我的要求是如果@TakeRows 是某个值,比如-1,我想获取所有行。我试图避免额外调用来计算行数
【问题讨论】:
-
我正在使用 sqlserver2008r2 order by 子句是动态的,我已经有 case 语句我更担心跳过和获取行
-
是的,我之前看到过这个链接,但到目前为止没有发现当前查询有任何问题
-
我不能在那里放一些 if 子句,我试过了,但它给出了编译错误
-
根据您要跳过的行数,实际上将所有行选择到您需要使用它的位置并跳过这些行可能会更容易和更快;而不是在查询中进行。
标签: sql sql-server database sql-server-2008 query-performance