sqlserver分页

1、SELECT TOP (10) * FROM ( SELECT  ROW_NUMBER() OVER (ORDER BY DataID desc)

 AS id,* FROM dbo.YJ_Expert       ) as t WHERE t.id > (10*(10000-1)) 

SELECT TOP (pagesize) * FROM ( SELECT  ROW_NUMBER() OVER (ORDER BY 排序字段 desc)

 AS id,* FROM dbo.YJ_Expert       ) as t WHERE t.id > (pagesize*(page-1)) 

备注:排序字段:最好是主键,如果是其他字段一定要加索引

2、当出现联合查询的时候

当主表数据很大的时候

  10 分页结果 left join 其他从表 这样效率才高,

 select * from (select TOP 10 * FROM(SELECT ROW_NUMBER() OVER(ORDER BY DESC) AS ROWID,y.* FROM y  ) AS TEMP1 where ROWID>0  ) po LEFT join o on po.createUser=o.userid  where 1=1  and o.orgid in(XX)


你可能感兴趣的:(sqlserver分页)