• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共99篇

    mysql数据库

关闭

返回栏目

关闭

返回mysql数据库栏目

73 - 原生查 - 数据库排序 - order by 分页

作者:

贺及楼

成为作者

更新日期:2021-12-31 13:13:58

原生查 - 数据库排序 - order by 分页

多个order by

order by a, b
a a条件
b b条件
先执行a在执行b

OFFSET - FETCH NEXT - ONLY

此方法需要在SQL server 2012及更高版本支持
如果自己的版本支持那么推荐使用此方法
相对于ROW_NUMBER() OVER()和between的性能有较大提升

执行顺序:先 Order By 后 Offset 后 Fetch
OFFSET :跳过(Skip)的数据行
Fetch NEXT:返回一定数据量的数据行

TOP 不能在同一个查询表达式中与 OFFSET 和 FETCH 一起使用

  1. select *
  2. from userInfo
  3. 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行开始往下数的五行数据