SQL Server 分页方法

1. offset fetch next 方式

  offset 0 表示跳过 0 行,类似 C# .Skip() 函数;

  next 10 row noly 表示获取10行数据,类似 C# .Take() 函数;

 这种方式分页必须先排序,没有排序运行时直接报错

select * from Goods
order by dCreate desc
offset 0 row fetch next 10 row only

--此方法需要SqlServer 2012版本及以上才有

2.  row_number() over(order by  [cloumn]) 方式

  利用row_number() over(order by [cloumn])函数计算出行数,选定相应行数返回即可 

  ROW_NUMBER() 时只获取主键列,随后在通过内链接获取所需字段的方式提高效率

select g.* from (
    select cGoodCode,ROW_NUMBER() over (order by dCreate desc) iNumber from Goods
) d inner join Goods g on d.cGoodCode = g.cGoodCode
where d.iNumber between 11 and 20

--此方法需要SqlServer 2005及以上版本
原文地址:https://www.cnblogs.com/haosit/p/11306765.html