今天终于手写了个分页查询的sql
绕过来了。
1.使用row_number()的 (SQL 2005+)
SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY dbo.user_info.id ASC) AS rowid,* FROM dbo.user_info) AS t
WHERE t.rowid BETWEEN 21 AND 30
2.使用top的
SELECT * FROM (
SELECT TOP 10 * FROM (--取最终的10条记录
SELECT TOP 30 * FROM dbo.user_info ORDER BY id --取前n条
)AS t1
ORDER BY t1.id DESC)AS t2--倒序
ORDER BY t2.id--重新排列顺序