TSQL结果集的分页

来源:互联网 发布:自动化模拟仿真软件 编辑:程序博客网 时间:2024/06/06 10:51

如果你要做一系列物品的分页列表,就一定会用到“TSQL结果集的分页”或者相似的概念。比如一共有99个物品,一页显示9个,那么你在读取的时候要把99个全读出来吗?绝对不行!因为当前页只需要9个,其它的90个全是浪费,既浪费时间又消耗资源,傻子才会这么做!大家一定知道TSQL里面有个TOP函数,它能取结果集的前xx个,就用它,我们就能实现用多少取多少的目的。

逻辑是这样的:第1页取1-9个数据;第2页取10-18个数据;第3页取19-27个数据……以此类推。而仅有的TOP函数只能取前几个,这里我们就需要动动脑子了。答案揭晓:比如你要取第10-18个数据,你先用TOP 18取出前18个数据A,然后TOP 9取出前9个数据B,那么A里面除去B,就是最终结果集!下面看看TSQL语句吧~

SELECT * FROM Item WHERE ItemID IN 
(
        SELECT TOP 取多少个数据 ItemID FROM Item WHERE ItemID NOT IN
        (
            SELECT TOP 从第几个数据开始
-1 ItemID FROM Item ORDER BY SortNo DESC
        )
        ORDER BY SortNo DESC
)
ORDER BY SortNo DESC
实际应用情况还要比这个复杂,比如说物品分类、显示状态、特殊排序等,有不懂的再问我吧~
原创粉丝点击