sql 分页查询

今天终于手写了个分页查询的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--重新排列顺序




你可能感兴趣的:(sql 分页查询)