SQL分页语句的三种方案

方法一:

复制代码 代码如下:
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
          (
          SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
          )
ORDER BY id

方法二:

复制代码 代码如下:
SELECT TOP 页大小 *
FROM table1
WHERE id >
          (
          SELECT ISNULL(MAX(id),0) 
          FROM
                (
                SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
                ) A
          )
ORDER BY id

方法二倒序:

复制代码 代码如下:
SELECT TOP 页大小 * 
FROM table1 
WHERE ID <= 
    ( 
    SELECT ISNULL(MIN(ID),(SELECT MAX(ID) FROM table1 )) 
    FROM
        ( 
        SELECT TOP (页大小*(页数-1)) ID FROM tbl_files ORDER BY ID DESC
        ) A 
    ) 
ORDER BY ID DESC

方法三

复制代码 代码如下:
SELECT TOP 页大小 * 
FROM
        (
        SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
        ) A
WHERE RowNumber > 页大小*(页数-1)

分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用

PS:这三条方案是在网上搜到的,做分页的时候选用的方案二,发现直接套用语句不能满足要求,因为根据发帖顺序,是需要倒序排列的,就是最新发帖需要排到最前面,于是仿照方案二改成了倒序,希望对大家有所帮助。

时间: 2024-10-31 10:49:09

SQL分页语句的三种方案的相关文章

SQL分页语句的三种方案_MsSql

方法一: 复制代码 代码如下: SELECT TOP 页大小 * FROM table1 WHERE id NOT IN          (           SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id           ) ORDER BY id 方法二: 复制代码 代码如下: SELECT TOP 页大小 * FROM table1 WHERE id >           (           SELECT ISNULL(MAX

几种高效mssql server sql分页语句

几种高效mssql server sql分页语句 分页方案三:(利用id大于多少和select top分页)效率最高,需要拼接sql语句 分页方案二:(利用not in和select top分页) 效率次之,需要拼接sql语句www.111cn.net 分页方案一:存储过程相对于大数据量会有明显的优势的  看一个简单存储过程实例的 create procedure pr_getarticles --这里为存储过程名称 @page int , @pagenum int as declare @ta

访问 Microsoft SQL Server 元数据的三种方法

server|访问|数据 访问 Microsoft SQL Server 元数据的三种方法 上海微创软件有限公司 肖桂东 适用读者:Microsoft SQL Server 中.高级用户 元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例.图书馆目录卡和名片等都可以看作是元数据.在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义.比如在管理.维护 SQL Serv

内存管理-连续分配、分页和分段三种存储分配机制的优缺点

问题描述 连续分配.分页和分段三种存储分配机制的优缺点 操作系统中的内存管理习题,请分析和比较连续分配.分页和分段三种存储分配机制的优缺点 解决方案 连续,设计简单,直接寻址,效率高.缺点:内存利用效率最低.分页,设计最复杂,容易产生碎片,无论数据有多少,都只能按照页面大小分配,造成浪费.分段,可以有效利用内存,缺点,无法利用碎片,必须搬移内存,造成性能损失.

SQL点滴16—SQL分页语句总结

原文:SQL点滴16-SQL分页语句总结 今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了. 使用top选项 selecttop10*from Orders a where a.orderid notin(selecttop10 orderid from Orders orderby orderid) orderby a.orderid 使用max函数 这种方法的前提是有唯一值的一个列. selecttop10*from Orders a  where a.or

移动适配的几种方案(三种方案)_javascript技巧

1.直接利用js适配 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return; docEl.style.fontSize

mssql sql 分页语句

mssql sql 分页语句 sql="select top 1 ddd from id,title,time,sum(id) as vv,a.id,b.id where table1,table2astb2 order by a.title like '%"&title&"%' desc" rs.open sql,conn,1,1 if rs.eof then else     ddd = rs("ddd") end if rs

火车票实名制屡爆漏洞 三种方案全都购票成功

摘要: 成长历程 火车票实名制屡爆漏洞 最近,南宁市民韦先生遇到了一桩怪事:8月22日他用12306手机客户端帮母亲定了一张23日凌晨百色到南宁的火车票,可韦先生的母亲去到火车站时忘记已 成长历程 火车票实名制屡爆漏洞 最近,南宁市民韦先生遇到了一桩"怪事":8月22日他用12306手机客户端帮母亲定了一张23日凌晨百色到南宁的火车票,可韦先生的母亲去到火车站时忘记已经买过票,又拿着身份证到火车站买了另一张同时间.同车次的车票."一张身份证能购买两张同时间同车次的车票,这是不

SQL SERVER 2008 中三种分页方法与比较_mssql2008

建立表: 复制代码 代码如下: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar] (50) COLLATE Chinese_PRC_