- SQLServer
支持使用 TOP + ROW_NUMBER() OVER 配合进行分页:
SELECT * FROM (SELECT TOP (?) ROW_NUMBER() OVER (ORDER BY o.order_id DESC) AS rownum, * FROM t_order o) AS temp WHERE temp.rownum > ? ORDER BY temp.order_id
支持 SQLServer 2012 之后的 OFFSET FETCH 的分页方式:
SELECT * FROM t_order o ORDER BY id OFFSET ? ROW FETCH NEXT ? ROWS ONLY
WITH xxx AS (SELECT …) 的方式进行分页。
Hibernate 自动生成的 SQLServer 分页语句使用了 WITH 语句,
还有使用两个 TOP + 子查询的方式实现分页。