不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

在不同数据库中的使用的分页查询语句:

当前页:currentpage
页大小:pagesize

1. Oracle数据库

 select * from (select A.*,rownum rn from ( QUERY_SQL ) A )  where rn <= ((currentpage+1)*pagesize) and rn > (currentpage*pagesize)

注:QUERY_SQL为查询sql语句。

select * from (select rownum rn,id from TABLENAME  where rownum <=((currentpage+1)*pagesize) ) A  where A.rn >= (currentpage*pagesize)

2. Infomix数据库

select skip currentpage first pagesize * from TABLENAME
 
3. DB2数据库

 select * from (select 字段1,字段2,字段3,rownumber() over(order by 排序用的列名 asc) as RN from 表名) as A1 where A1.RN between (currentpage*pagesize) and ((currentpage+1)*pagesize) 
 或
 select * from (select rownumber() over(order by id asc ) as rowid from table where rowid <=((currentpage+1)*pagesize) )   where rowid > (currentpage*pagesize)
 
 
4. SQL Server数据库

 select top pagesize *
  from TABLENAME
 where COLLUMN_NO not in
       (select top currentpage*pagesize COLLUMN_NO from TABLENAME order by COLLUMN_NO)
 order by COLLUMN_NO
 
5. Sybase数据库

Sybase 12.5.3版本号支持top查询,或使用set rowcount N查询头N条数据
另外採用暂时表:
select rowid=identity(12), column_name into #TEMPTABLE from TABLENAME
select column_name  from #TEMPTABLE where rowid >(currentpage*pagesize) and rowid < (currentpage*pagesize+pagesize)

6. MySQL数据库

 SELECT * FROM TABLE1 LIMIT (currentpage*pagesize),pagesize

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号