[oracle]一个oracle分页sql语句的类 有问题 麻烦各位前辈给个指教

java操作oracle分页sqlSELECT*FROM   (SELECTA.*,ROWNUMRN   &n... java操作oracle分页sqlSELECT * FROM     (SELECT A.*, ROWNUM RN      FROM          (SELECT *           FROM tb_news           where isload=0           order by isload desc) A      WHERE ROWNUM < 15) WHERE RN >=10;  package com.whelp.system.util;public class ShowSQL {/**** 获取oracle分页SQL语句* @param tableName 要查询的表,不可以带where* @param start 开始条数* @param end 结束条数* @param orderBy 排序方式* @param andwhere 如 typeid=5* @return 一条相应的oracle sql语句*/public static String getSqlStartEnd(String tableName,int start,int end,String orderBy,String andwhere){   String sql = "";   sql = "select * from ( select rownum r,a.* from "+tableName+" a where rownum<="+end+" ) b where b.r>"+start;     if(orderBy!=null)   {    sql = sql+" order by b."+orderBy;   }     if(start==-1 && end==-1)   {    sql = "select * from " +tableName;   }     if(andwhere!=null)   {    sql=sql+" and b."+andwhere;   }   return sql;}/*** 获取oracle分页SQL语句* @param tableName 要查询的表,不可以带where* @param start 开始条数* @param end 结束条数* @param orderBy 排序方式* @return 一条相应的oracle sql语句*/public static String getSqlStartEnd(String tableName,int start,int end,String orderBy){     return getSqlStartEnd(tableName, start, end, orderBy, null);}/**** 获取oracle分页SQL语句* @param tableName 要查询的表,不可以带where* @param start 开始条数* @param end 结束条数* @return 一条相应的oracle sql语句*/public static String getSqlStartEnd(String tableName,int start,int end){   return getSqlStartEnd(tableName, start, end, null);}/**** 获取oracle分页SQL语句* @param tableName 要查询的表,不可以带where* @param pagesize 每页显示多少条* @param pagenum 当前页* @param orderBy 排序方式* @param andwhere 如 typeid=5* @return 一条相应的oracle sql语句*/public static String getSql(String tableName,int pagesize,int pagenum,String orderBy,String andwhere){   int first = (pagenum-1)*pagesize;   int last = pagenum * pagesize;   String sql = "";   sql = "select * from ( select rownum r,a.* from "+tableName+" a where rownum<="+last+" ) b where b.r>"+first;     if(orderBy!=null)   {    sql = sql+" order by b."+orderBy;   }     if(pagenum==-1 && pagesize==-1)   {    sql = "select * from " +tableName;   }     if(andwhere!=null)   {    sql=sql+" and b."+andwhere;   }   return sql;}/**比4个参数的多一个条 展开
 我来答
libing8719
2012-02-26
知道答主
回答量:8
采纳率:0%
帮助的人:8.4万
展开全部
建议使用3层封装+rownum函数实现分页:
select *
from (select * from (select * from prod) t1 where rownum <= 20) t2
where rownum <= 10

please note:
1. select * from prod 是处理业务逻辑的sql,直接替换成你的就可以了
2. “20”代表最大的数目
3. “10”表示开始的数目
永恒谷爱恋
2012-02-29 · TA获得超过290个赞
知道答主
回答量:155
采纳率:0%
帮助的人:67.9万
展开全部
俺也学习一下哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aplbbval0453
2012-02-28 · 贡献了超过254个回答
知道答主
回答量:254
采纳率:0%
帮助的人:89.2万
展开全部
ALTER TABLE aaa ADD ccc int NULL CONSTRAINT ccc DEFAULT 0 WITH VALUES ; GO 蓝屏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0613032107
2012-03-02 · TA获得超过347个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:208万
展开全部
为什么不用select t.* from tableName t where rownum > ? and rownum < ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式