• 简单的SQL分页法


    简单的SQL分页法

    select top 10 * from User u1
        where u1.Id not in (
            select top 10*@page u2.Id from User u2 order by u2.Id asc
        )
    order by u1.Id

    其中 top 10 为我们需要分页的项目数, @page 为页数;如:我们现在需要 1-10条的记录 page=0,需要11-20的记录 page=1
    =====================================================================

    DECLARE @page int
    DECLARE @size int
    SET @size = 10
    SET @page = 1

    select TOP(@size) * from Users u1
        where u1.UserId not in (
            select TOP(@size*@page) u2.UserId from Users u2 order by UserId asc
        )
        ORDER BY u1.UserID asc


    =====================================================================
    附上另一方法:
    WITH OrderedOrders AS
    (SELECT *,
    ROW_NUMBER() OVER (order by [id])as RowNumber  --id是用来排序的列
    FROM table_info ) --table_info是表名
    SELECT *
    FROM OrderedOrders
    WHERE RowNumber between 50 and 60;

    在windows server 2003, sql server 2005 CTP,P4 2.66GHZ,1GB 内存下测试,执行时间0秒 ,表中数据量230万
  • 相关阅读:
    C#带日期型默认值参数的函数
    mvc调用webapi上传图片或文件
    mysql增删改查存储过程
    sql 分页存储过程
    sql 出库存储过程
    Ternura
    留言板
    友链
    .net 死锁
    C#微信小程序搜索框
  • 原文地址:https://www.cnblogs.com/Koy/p/1135108.html
Copyright © 2020-2023  润新知