认识ORDER BY子句的延伸——OFFSET 和 FETCH 子句(SqlServer2012开始)

OFFSET和FETCH子句适用于SQL Server 2012 (11.x)和Azure SQL数据库之后的版本。

先看下实际例子(SqlServer2016中):

 语法:

ORDER BY column_list [ASC |DESC]
[OFFSET offset_row_count {ROW | ROWS}
[FETCH {FIRST | NEXT} fetch_row_count {ROW | ROWS} ONLY]]

  • 这里FIRST与NEXT是同义的,可以互换使用。ROW 和 ROWS 也是同义的,可以互用。
  • offset_row_count:可以是大于或等于0的常量(constant)、变量(variable)或参数(parameter); 
  • fetch_row_count: 可以是大于或等于1的常量(constant)、变量(variable)或标量(scalar)。

注意:

  1. offset和 fetch 仅可以在order by子句后面才能使用,不能与top一起使用,(用“offset 0 fetch next N ROWS ONLY”可以替代“top N”的功能);
  2. fetch是可选项,用于限制返回行数,只能跟在offset后面使用。

用OFFSET 和 FETCH 子句实现分页功能比用ROW_NUMBER()函数做子查询的方式会少耗一些资源,性能更好。

 

更详细的资料可以参考以下实例教程:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值