为了账号安全,请及时绑定邮箱和手机立即绑定

SQLServer的限制和偏移量等效吗?

SQLServer的限制和偏移量等效吗?

SQLServer的限制和偏移量等效吗?在PostgreSQL中,Limit和Offset关键字,这将允许非常容易分页的结果集。SQLServer的等效语法是什么?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

相当于LIMITSET ROWCOUNT,但是如果您想要通用分页,最好编写如下查询:

;WITH Results_CTE AS(
    SELECT
        Col1, Col2, ...,
        ROW_NUMBER() OVER (ORDER BY SortCol1, SortCol2, ...) AS RowNum    FROM Table
    WHERE <whatever>)SELECT *FROM Results_CTEWHERE RowNum >= @OffsetAND RowNum < @Offset + @Limit

这里的优点是,如果您决定更改分页选项(或允许用户这样做),则可以对偏移量和限制进行参数化。

注:这个@Offset参数应该使用基于一种索引的方法,而不是普通的基于零的索引。


查看完整回答
反对 回复 2019-06-26
?
holdtom

TA贡献1805条经验 获得超10个赞

select top {LIMIT HERE} * from (
      select *, ROW_NUMBER() over (order by {ORDER FIELD}) as r_n_n 
      from {YOUR TABLES} where {OTHER OPTIONAL FILTERS}) xx where r_n_n >={OFFSET HERE}

注:此解决方案仅适用于SQLServer 2005或更高版本,因为ROW_NUMBER()已经实施。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 781 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信