SQL分页语句

Mysql

# 只需在查询语句后面加上 limit 
{sql} LIMIT {offset}, {pageSize}

Oracle

SELECT * FROM (SELECT _rn.*, ROWNUM _rnum FROM ({sql}) _rn WHERE ROWNUM<={offset+pageSize}) WHERE _rnum> {offset}

Sql Server

SELECT TOP {pageSize} _rn.* FROM (SELECT row_number() over({order by 语句}) AS _rnum,* FROM ({sql}) AS _rf ) AS _rn WHERE _rnum> {offset}

Sql Server 2012

Sql Server 2012 对 sql 分页增加了新的支持

{sql} OFFSET ROW FETCH NEXT {pageSize} ROWS only

语法:

ORDER BY order_by_expression
    [ COLLATE collation_name ] 
    [ ASC | DESC ] 
    [ ,...n ] 
[ <offset_fetch> ]


<offset_fetch> ::=
{ 
    OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
    [
      FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
    ]
}

PostgreSQL

{sql} LIMIT {pageSize} OFFSET {offset}