oracle mysql SqlServer 数据库分页实现sql

本文介绍了在MySQL、Oracle和SQL Server中实现分页查询的具体方法,包括构造SQL语句的Java代码示例。针对不同数据库的特点,提供了适用于各自平台的分页解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 mysql的分页实现:


  public StringBuilder buildPageSqlForMysql(String sql, PageParameter page) { 
                
                StringBuilder pageSql = new StringBuilder(100);  
  1.     String beginrow = String.valueOf((page.getCurrentPage() - 1) * page.getPageSize());  
  2.     pageSql.append(sql);  
  3.     pageSql.append(" limit " + beginrow + "," + page.getPageSize());  
  4.     return pageSql;  


String beginrow = String.valueOf((page.getCurrentPage() - 1) * page.getPageSize()); 

limit " + beginrow + "," + page.getPageSize()


oracle的分页实现:

  1. public StringBuilder buildPageSqlForOracle(String sql, PageParameter page) {  
  2.     StringBuilder pageSql = new StringBuilder(100);  
  3.     String beginrow = String.valueOf((page.getCurrentPage() - 1) * page.getPageSize());  
  4.     String endrow = String.valueOf(page.getCurrentPage() * page.getPageSize());  
  5.     pageSql.append("select * from ( select temp.*, rownum row_id from ( ");  
  6.     pageSql.append(sql);  
  7.     pageSql.append(" ) temp where rownum <= ").append(endrow);  
  8.     pageSql.append(") where row_id > ").append(beginrow);  
  9.     return pageSql;  

  1.     String beginrow = String.valueOf((page.getCurrentPage() - 1) * page.getPageSize());  
  2.     String endrow = String.valueOf(page.getCurrentPage() * page.getPageSize());  
  3.     pageSql.append("select * from ( select temp.*, rownum row_id from ( ");

  1.     pageSql.append(" ) temp where rownum <= ").append(endrow);  
  2.     pageSql.append(") where row_id > ").append(beginrow); 


sqlserver 分页sql:

分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID


SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID

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

分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID


SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值