数据库MySQL、Oracle、SQLServer、db2分页查询语句

#pagesize 为每页的大小.

#pagenumber为要显示页面页面号.

#查看学生表的2班学生

mySQL查询分页语句:

select * from studenttb where stuclass='2' limit pagesize*(pagenumber-1),pagesize*pagenumber;

Oracle查询分页语句:

需要分组分页:

select * from (

select t.*,rownum from (select * from studenttb where stuclass='2' order by stugender) t 

)where rownum>pagesize*(pagenumber-1) and rownum<=pagesize*pagenumber;

基本分页:

select * from (

select t.*,rownum from studenttb t where stuclass='2'

)where rownum>pagesize*(pagenumber-1) and rownum<=pagesize*pagenumber;

SQLServer查询分页语句:

查询语句1:

select * from (

select row_number() over(order by stuno asc)as row_number,* from studenttb where stuclass='2'

)as tl where tl.row_number between pagesize*(pagenumber-1) and pagesize*pagenumber;

下边SQLServer三种分页方案默认页大小为10,开始位置:页大小*(页数-1)

top方案:

select top 10 * from table1
   where id not in(select top 开始的位置 id from table1)

max方案:  
select top 10 * from table1
    where id>(select max(id)
    from (select top 开始位置 id from table1order by id)tt)

row方案:
select *
from (
    select row_number()over(order by tempcolumn)temprownumber,*
    from (select top 开始位置+10 tempcolumn=0,* from table1)t
)tt
where temprownumber>开始位置
效率: top方案 < max方案 < row方案(max)

db2查询分页语句:

1:

SELECT * FROM (

Select 字段1,字段2,字段3,rownumber() over(ORDER BY 排序用的列名 ASC) AS rn from 表名

) AS a1 WHERE a1.rn BETWEEN 10 AND 20;

2:

select * from (

select rownumber() over(order by id asc 

) as rowid from table where rowid <=endIndex 

) where rowid > startIndex;

时间: 2024-12-05 03:31:49

数据库MySQL、Oracle、SQLServer、db2分页查询语句的相关文章

Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍

先来定义分页语句将要用到的几个参数: int currentPage ; //当前页 int pageRecord ; //每页显示记录数 以之前的ADDRESSBOOK数据表为例(每页显示10条记录): 一.SqlServe下载 分页语句 String sql = "select top "+pageRecord +" * from addressbook where id not in (select top "+(currentPage-)*pageRecor

Sql数据库分页查询语句

MySQL  --查询第10到20条数据   代码如下 复制代码 SELECT * FROM table_name WHERE - LIMIT 10,20;   SQLServer  代码如下 复制代码  --查询前10|10%条数据   SELECT TOP 10|10% * FROM table_name;   --查询第10到20条数据   SELECT TOP 10 * FROM    (SELECT TOP 20 * FROM table_name ORDER BY id ASC) a

数据库分页查询语句数据库查询_数据库其它

先看看单条 SQL 语句的分页 SQL 吧. 方法1: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id 方法2: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(M

在JSP中访问Oracle ,SqlServer ,DB2, Informix ,Access 数据库

access|js|oracle|server|sqlserver|访问|数据|数据库 在JSP中访问Oracle ,SqlServer ,DB2, Informix ,Access 数据库现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发.在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类

详解Oracle的几种分页查询语句

分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围. 上面给出的这个分页查询语句,在大多数情况拥有较高的效率.分页的目的就是控制输出结果集大小,

Oracle分页查询语句简介

Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40 和RN >= 21控制分页查询的每页的范围. 上面给出的这个分页查

MySQL的分页查询语句limit

问题描述 MySQL的分页查询语句limit 假设,一个表中有一百条数据,我要查询第5页,每页10条数据,SQL语句怎么写?是用limit么? 不用涉及到Java语言,就SQL语句 解决方案 SELECT * FROM table LIMIT 51,10; 解决方案二: 查询第m页,每页n条数据 SELECT * FROM tablename LIMIT (m-1)*n,n 解决方案三: SELECT * FROM tablename LIMIT 5,10 解决方案四: SELECT * FRO

关于vb.net中针对sqlserver数据库的多表连接分页查询,那位高手帮帮忙,谢谢、

问题描述 关于vb.net中针对sqlserver数据库的多表连接分页查询 解决方案 解决方案二:多表查询只要sql文里select字段from表1,表2...表nwhere关联条件至于分页,可以把检索出来的结果集放到程序里,控制显示行数,并记录页数,换页时计算一下需要显示那些行解决方案三:分页跟查询好像没什么关系吧解决方案四:你是WINFORM还是ASP.NET阿?分页查询我推荐在Sqlserver里写存储过程.如果不会写存储过程的话,vb.net的分页有几种办法:1设定一个DATAGRID或

Oracle分页查询语句(一)

Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围. 上面给出的这个分页查询语句,