Oracle分页查询sql语句

前端之家收集整理的这篇文章主要介绍了Oracle分页查询sql语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.oracle中的分页查询sql语句基本可以按照如下的模板来改写:

  1. SELECT * FROM (SELECT A.*,ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40) WHERE RN > 20

其中的SELECT * FROM TABLE_NAME 表示没有进行分页时的SQL查询语句,而ROWNUM 和RN 限定了查询数据的范围。

2.使用时的代码如下所示:

  1. /** 查询码号相关信息的sql语句 **/
  2. String sql_query = "SELECT * FROM (SELECT a.*,ROWNUM rn FROM (SELECT c.codename,case when (c.isopen = 0) then '不可用'" + " when (c.isopen = 1) then ((case when (c.codestatus = 0) then '空闲'" + " when (c.codestatus = 1) then '预占' when (c.codestatus = 2) then '占用'" + " when (c.enddate > sysdate) then '保留期' end)) end as status,t.name,( select p." + " party_name from CRM.PARTY p" + " where p.party_id=c.custid) as partyname,c.deviceid,(select l.name FROM" + " lgc_codetoclass_tbl l)as codeFeature,(SELECT g.name FROM LGC_CODEGRADE_TBL g" + " WHERE g.id=c.gradeid) as gradename,(select g.value " + " from LGC_CODEGRADE_TBL g where g.id = c.gradeid) as codePrice,c.comments" + " FROM LGC_CODESEG_TBL t,LGC_CODENUMBER_TBL c WHERE t.ID = c.CODESEGID and c.codename=?" + " ) a WHERE ROWNUM <= ?) WHERE rn > ?";
  1. /** 用来查询码号查询页面数据的方法的实现 **/
  2. public NumberRsp queryRecords(NumberEvt evt,int pageNo,int pageSize) {
  3. Map<String,Object> map = jdbcTemplate.queryForMap(sql_count);
  4. List<NumberVo> list = jdbcTemplate.query(sql_query,new Object[] { evt.getCode(),pageNo*pageSize,(pageNo-1)*pageSize},new RowMapper<NumberVo>() {
  5. public NumberVo mapRow(ResultSet rs,int rowNum) throws sqlException {
  6. // TODO Auto-generated method stub
  7. NumberVo numberVo = new NumberVo();
  8. numberVo.setPhone(rs.getString(1));
  9. numberVo.setStatus(rs.getString(2));
  10. numberVo.setCodePartName(rs.getString(3));
  11. numberVo.setUnit(rs.getString(4));
  12. numberVo.setFacility(rs.getString(5));
  13. numberVo.setCodeFeature(rs.getString(6));
  14. numberVo.setPricingLevel(rs.getString(7));
  15. numberVo.setCodePrice(rs.getShort(8));
  16. numberVo.setRemark(rs.getString(9));
  17. return numberVo;
  18. }
  19. });
  20. NumberRsp numberRsp = new NumberRsp();
  21. if (map.get("total") != null) {
  22. numberRsp.setTotal(Integer.parseInt(map.get("total").toString()));
  23. }
  24. if (map.get("ky") != null) {
  25. numberRsp.setUsableNum(Integer.parseInt(map.get("ky").toString()));
  26. }
  27. if (map.get("bky") != null) {
  28. numberRsp.setUnUsableNum(Integer.parseInt(map.get("bky").toString()));
  29. }
  30. if (map.get("youhao") != null) {
  31. numberRsp.setYouhaoNum(Integer.parseInt(map.get("youhao").toString()));
  32. }
  33. if (map.get("puhao") != null) {
  34. numberRsp.setPuhaoNum(Integer.parseInt(map.get("puhao").toString()));
  35. }
  36. if (list != null) {
  37. numberRsp.setRecords(list);
  38. }
  39. return numberRsp;
  40. }

猜你在找的Oracle相关文章