sql 分页语句 备忘

select   top   35   * 
from   TABLE1  
where  

        siteid
=3 and id  not in  
        (  
        
select   top   35   id   from   TABLE1   
        
where siteid=3 order   by   id  
        )  
)    
order   by   id  

--原理就是去掉 前(页码-1)*页面大小 个编号id ,尽管效率不高,但是有可行性

弊病:1   强制排序 
2   排序列必须是唯一列,否则分页情况不符实际 
3.   使用not   in,速度慢, 



下面一个就是利用他的一个利用唯一列 (id)编号来产生一个区间,必须要求是自增编号,效果不太好,不适用于搜索结果。

代码
select   top   页大小   * 
from   testtable 
where   ( 
 id 
>  
   (   
       
select   max(id)  
       
from   
       (  
          
select   top   页大小*页数   id   from   表 order   by   id   )   as   t 
       ) 
   )   
order   by   id 

--弊病:1   强制排序 
--
    2   排序列必须是唯一列,否则分页情况不符实际 

 欢迎大家拍转。

原文地址:https://www.cnblogs.com/chenli0513/p/1954841.html