数据库分页SQL语句

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库分页SQL语句

博客分类:

数据库

数据库分页语句

SQL Server

--------------------------------------------------------------------------------- 从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:

SELECT *

FROM ( SELECT Top N *

FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2 Order by 主键 asc

例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

SELECT *

FROM ( SELECT TOP 20 *

FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2

Order by sys_id asc

Oralce数据库

--------------------------------------------------------------------------------

从数据库表中第M条记录开始检索N条记录

SELECT *

FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2

where t2.r >= M

例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

SELECT *

FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2

Where t2.R >= 10

如果你对Oracle数据库分页不是很熟悉的话,本页后面有专门对Oracle分页技术的讲解。

My sql数据库

---------------------------------------------------------------------------------------------

My sql数据库最简单,是利用mysql的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为:

SELECT * FROM 表名称 LIMIT M,N

例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

select * from sys_option limit 10,20

*********************************************************************************** ********************************

楼主问的是mysql下的吧

"QUERY_SQL limit ?,?"

QUERY_SQL 就是查询语句,比如select sno,sname from student limit 1,15;

使用limit关键字,第一个"?"是起始行号,

第二个"?"是返回条目数

=====================================================

另外提供给LZ其他数据库的分页语句

Oracle

SELECT * FROM

( SELECT A.*, ROWNUM RN FROM

(QUERY_SQL ) A WHERE ROWNUM

<= ?) WHERE RN >= ?

结合rownum关键字,利用嵌套三层select

语句实现。第一个"?"表示终止行号,

第二个"?"表示其实行号

==============================================

Sql Server

尚无通用语句可使用top n来返回前n条记录或使用存储过程

================================================

DB2

假设查询语句:select t1.* from t1 order

by t1.id;分页语句可为:

"select * from ( select rownumber() over

(order by t1.id) as row_, t1.* from t1

order by t1.id) as temp_ where row_

between ?+1 and ?" 返回两个"?"之间的记录

===================================================

InterBase

“QUERY_SQL row ? to ?”返回两个"?"之间的记录

PostgreSQL “QUERY_SQL limit ? offset ?”第一个"?"为起始行号,第二个"?"代表返回记录数

*********************************************************************************** ****************************

相关文档
最新文档