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及以上版本