SQL 分页查询语句大全即(查找第N到M条记录的方法)

第一种方法,我的原创方法

row=2 表示分页行数

page=1 表示页码

getnum=row*page

select * from  (select top row * from (select top getnum * from Newslist  order by id desc) order by id asc) order by id desc

SQL查找第n条记录的方法: select top 1 * from table where id not in (select top n-1 id from table)

例如:select top 1 * from Evaluation where id not in (select top 0 id from Evaluation  where SortPath='0,73,87,'  order by Sort asc) and   SortPath='0,73,87,'  order by Sort asc
SQL查找第n条开始的m条记录的方法: select top m * from table where id not in (select top n-1 id from table) temptable0)
(注:表中必须有一个唯一值字段才可适用此方法。)

1 --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本) 2  3 SELECT TOP n-m+1 *   4 FROM Table   5 WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))

6  7  8 --从TABLE表中取出第m到n条记录 (Exists版本) 9 10 SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists11 (Select * From (Select Top m-1 * From TABLE order by id) b Where b.id=a.id )  12 Order by id 13 14 15 --m为上标,n为下标,例如取出第8到12条记录,m=8,n=12,Table为表名16 17 Select Top n-m+1 * From Table  18 Where Id>(Select Max(Id) From  19 (Select Top m-1 Id From Table Order By Id Asc) Temp)  20 Order By Id Asc


我一直以为ACCESS的SQL语句与SQL Server差不多,当时也使用 Select top n在ACCESS测试过,都是成功的,但昨天突然发现ACCESS中有个问题:   如果在查询TOP语句的后面使用Order by,而且Order by字段中有重复值的话,那么这个TOP很可能会失效, 会返回所有记录 比如:

 Select top 5 from News order by CreateDate

如果CreateDate中有重复值,那么很有可能会显示出所有的记录来,此TOP功能会失效的 但如果CreateDate中无重复值,那么TOP功能还是有效的
因此,在ACCESS中使用TOP功能要注意一下order by的字段是否会有重复值,如果象CreateDate是"年-月-日时:分:秒"的,那基本上问题不大的。 但为了保险起见,我们也可以采用“加入主键”的方式:

 Select top 5 from News order by CreateDate desc,id desc

用主键作“不可能重复”的保障就可以防止此问题出现了!!

--orderid 1:1028 10:10257 20:10267 30:10277 --查询第20-30条select top 10 * from Orders where OrderID>  (select max(OrderID) from    (select top 20 OrderID from Orders order by OrderID ASC ) t0 )
order by OrderID ASC

在网上找到一个相关的解释: JET SQL不是 T-SQL语句。 jet sql 会返回重复值,也就是说,一个表中如果 ORDER BY 的字段都是 0 ,一共有100条记录,即使你用SELECT TOP 1 来返回记录,也同样返回100条记录,因为 JET DB 无从在这100条记录里面判断先后次序,只能返回100条。要解决此问题可以在后面加入一个主键字段

转载于:https://www.cnblogs.com/bulemaple/articles/2827716.html

SQL 分页查询语句大全即(查找第N到M条记录的方法)相关推荐

  1. mysql的查询语句大全_sql语句(sql数据库查询语句大全)

    sql语句 结构化查询语言(StructuredQueryLanguage)缩写为SQL.结构化查询语言是一种数据库查询和编程语言,用于访问数据以及查询,更新和管理关系数据库系统: 程序功能 创建数据 ...

  2. jpa mysql sql分页查询语句_JPA多条件复杂SQL动态分页查询功能

    概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 spring ...

  3. java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...

    //代码复制出来,修改一下bean,加载一下jar包,能直接用的,不懂加我Q 983331283 package cn.tootoo.entity; public class Page { priva ...

  4. jpa mysql sql分页查询语句_jpa 中 Query 的分页查询和更新

    1,查询分页 注意这个地方nativeQuery=true 代表的是可执行原生sql 先查询出来所有的数据,然后再差个总条数 返回page @Query(nativeQuery = true, val ...

  5. oracle 分页语句效率高,Oracle 10g SQL分页查询语句和效率分析

    下面统计一下这张表中的记录数: SQL> select count(*) from customers; COUNT(*) ---------- 55500 已用时间:  00: 00: 00. ...

  6. Sqlserver分页查询语句

    Sql server分页查询语句 PageSize:每页显示几条数据 pageNumber:当前页索引 T为表 注:通常pageNumber索引从零开始 select * from t where I ...

  7. SQL查询语句大全(转)

    转自https://www.cnblogs.com/chenglc/p/8421492.html 重点参考https://blog.csdn.net/g1418377085/article/detai ...

  8. (转)经典SQL查询语句大全

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  9. orcal SQL查询语句大全集锦

    orcal   SQL查询语句大全集锦 一. 简单查询   简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例 ...

最新文章

  1. oracle怎么adi导入,Web adi 导入笔记 详细图解
  2. 当代的设计潮流是什么_解码“潮流合伙人”IP生意经
  3. 陆奇谢幕后,百度的“新”时代
  4. 【Opencv实战】趣味应用 | 用OpenCV自动给图片添加虚拟特效---平淡的生活需要技术的点缀~
  5. java 素数 五行_【数论】素数的判定与筛法
  6. Qt Creator Qt快速最佳实践
  7. 客户端调用webSerices
  8. 扩展欧几里得学习笔记
  9. 文件系统之-JAVA Sftp远程操作:
  10. MyBatis(六)SqlSessionTemplate是如何保证线程安全的
  11. C专家编程复习摘要一
  12. java cap 反编译_应用 JD-Eclipse 插件实现 RFT 中 .class 文件的反向编译
  13. 如何实现小程序的无限推送
  14. java中的枚举是什么?枚举怎么使用?
  15. python 正态分布概率_计算正态分布中的概率,给定平均值,std在Python中
  16. 轮播图代码,带定时器和小圆圈(易懂)
  17. 怎么用命令远程重启服务器,使用命令行重启Windows服务器的方法
  18. 关于电子科技大学学生阅读情况调查报告
  19. 使用C语言实现杨辉三角
  20. 追MM与设计模式(23种设计模式巧妙解析,趣味理解)

热门文章

  1. java -p_javap命令详解 - JackieYeah的个人空间 - OSCHINA - 中文开源技术交流社区
  2. 后端技术:Java代码优秀案例,一定对你有提升!
  3. 后端技术:数据持久化框架为什么放弃 Hibernate、JPA、Mybatis,最终选择 JDBCTemplate!...
  4. Git基础: .git 目录详解
  5. 程序员如何高效的学习?
  6. 盘点9 个实用的 JSON 工具
  7. 判断是否为自然数java_java判断输入的是否是自然数
  8. 用python写linux中的ls,Python实现Linux环境下的ls命令
  9. 安卓linux交叉编译,Linux Ubuntu下用Android NDK 生成独立交叉编译链
  10. 云栖大会上,阿里巴巴重磅发布前端知识图谱!