分页查询代码

 

ORCALE数据库实现分页查询可以使用row_number()函数或者使用rownum 虚列两种方法。

第一种:利用分析函数row_number() 方法
select * from(
select t.*,row_number() over (order by t1.id) rowno from TABLE1
)
where rowno between 21 and 40;
 
第二种:直接使用rownum 虚列
select * from
(select t.*,rownum as rowno from TABLE1 )
where rowno between 10 and 20

 

 

JAVA中的代码:

 

String usedsql = sql.trim();
  boolean isForUpdate = false;
  if (usedsql.toLowerCase().endsWith(" for update")) {
   usedsql = usedsql.substring(0, usedsql.length() - MIN_VALUE);
   isForUpdate = true;
  }

 

String usedsql = sql.trim();
  boolean isForUpdate = false;
  if (usedsql.toLowerCase().endsWith(" for update")) {
   usedsql = usedsql.substring(0, usedsql.length() - MIN_VALUE);
   isForUpdate = true;
  }

  StringBuffer pagingSelect = new StringBuffer(usedsql.length() + MAX_VALUE);
  if (offset > 0) {
   pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
  } else {
   pagingSelect.append("select * from ( ");
  }
  pagingSelect.append(usedsql);
  if (offset > 0) {
   pagingSelect.append(" ) row_ ) where rownum_ between " + offset + " and " + limit);
  } else {
   pagingSelect.append(" ) where rownum <= " + limit);
  }

  if (isForUpdate) {
   pagingSelect.append(" for update");
  }

  if (isForUpdate) {
   pagingSelect.append(" for update");
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值