order by a, b
a a条件
b b条件
先执行a在执行b
此方法需要在SQL server 2012及更高版本支持
如果自己的版本支持那么推荐使用此方法
相对于ROW_NUMBER() OVER()和between的性能有较大提升
执行顺序:先 Order By 后 Offset 后 Fetch
OFFSET :跳过(Skip)的数据行
Fetch NEXT:返回一定数据量的数据行
TOP 不能在同一个查询表达式中与 OFFSET 和 FETCH 一起使用
select *
from userInfo
order by id OFFSET (5*(2-1)) rows fetch next 5 rows only
思路:使用OFFSET 跳过开始行数,然后使用FETCH NEXT返回需要行数的剩余数
公式:OFFSET 开始行数 ROWS FETCH NEXT 需要行数 ROWS ONLY
结果:跳过第0行从第1行开始,返回从第1行开始往下数的五行数据,假如是第二页(5*(2-1)),就是跳过第五行开始,返回从第6行开始往下数的五行数据