数据库分页SQL语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ?”第一个"?"为起始行号,第二个"?"代表返回记录数
*********************************************************************************** ****************************