Java中oracle分页查询01

在数据库汇中的查询语句:oracle中使用rownum进行分页,从每页在总记录数的第n条到第m条;这里的是每页10条记录,下面sql所查询的是第页的记录数;oracle的分页是从1开始的,这里写成rownum>=0,rownum<=9,查询的记录是9条。

SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_
          FROM (SELECT *
                  FROM TABLE1
                 WHERE TABLE1_ID = XX
                 ORDER BY GMT_CREATE DESC) ROW_
         WHERE ROWNUM <= 20)
 WHERE ROWNUM_ >= 11;

一般项目从页面传递的数据是:page,pagesize;写成sql语句:

select * from (select rownum rn,a.* from A_MODEL a where rownum<=page*pageSize)aa where aa.rn>(page-1)*pageSize

下面是在实际项目的一条sql语句:值得注意的是在mybatis中不能用<,而要用转义字符(&lt;)

<select id="queryLossModelList" resultMap="BaseResultMap">
        SELECT aaa.*,s.MIN_NAME FROM (SELECT aa.*
        FROM
        (SELECT rownum rn,a.*
        FROM A_MODEL_LOSS a
        WHERE 1=1
        <choose>
            <when test="cateId != null and cateId != ‘‘">
                and a.model_cate_id in (select cate_id from a_category c where c.cate_id = #{cateId})
            </when>
            <when test="brandId != null and brandId != ‘‘">
                and a.model_cate_id in
                (select cate_id from a_category bc where bc.cate_parent_id = #{brandId})
            </when>
            <when test="factoryId != null and factoryId != ‘‘">
                and a.model_cate_id in
                (select cate_id from a_category bc
                where bc.cate_parent_id in
                (select cate_id from a_category fc where fc.cate_parent_id = #{factoryId}))
            </when>
        </choose>
        <if test="country != null and country != ‘‘">
            and a.MODEL_COUNTRY = #{country}
        </if>
        <if test="standardName != null and standardName != ‘‘">
            and a.MODEL_STANDARD_NAME LIKE ‘%${standardName}%‘
        </if>
        <if test="vinNo != null and vinNo !=‘‘">
            and a.MODEL_VIN_NO LIKE ‘%${vinNo}%‘
        </if>
        and rownum &lt;= #{endRow})aa
        WHERE aa.rn > #{startRow})aaa LEFT JOIN S_DICT_MIN s on aaa.MODEL_CLASS = s.MIN_VALUE
    </select>

原文地址:https://www.cnblogs.com/lazyli/p/10973403.html

时间: 2024-10-05 11:53:04

Java中oracle分页查询01的相关文章

Oracle分页查询语句的写法(转)

分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.Oracle分分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHER

ORACLE 分页查询

Oracle之分页查询 Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围.

oracle 分页查询数据重复问题

最近在做项目的时候发现一个问题,oracle 在查询分页数据的时候,有几条数据重复查询了,并且有几条数据在分页的时候消失了.百度了一下发现,ORACLE 在查询数据的时候返回的行不是固定的,他只是按照顺序从数据中读取符合条件的数据返回到客户端,给用户误解为默认排序. 然而,当我加上排序的时候,还是查询有重复的数据,(指第一页数据在第二页也查询出来了),这是我就疑问了,当我检查数据的时候,发现我排序的字段有空的情况,而且有很多条,导致排序返回的 伪列并不是唯一的. 总结: oracle 分页查询数

oracle分页查询结果集重复问题&解决方法

做项目时,无意间发现了分页上的一个bug,在此记录一下: 首先手动将后台输出的sql语句复制进oracle中查看,以便排查错误,对比以下视图前10条的结果集与10到20条的结果集,发现大部分记录出现重复现象,SQL语句如下: --前10条记录 select *   from (select row_.*, rownum rownum_           from (select t.idcard, count(1)                   from sampling.v_unvou

Java学习之分页查询

Java学习之分页查询 一先做数据库的实体类 Userinfo.java <span style="font-size:14px;">package com.zhu.books.jdbc; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class Pagation extends DBCon

ssh框架中的分页查询

ssh中的分页查询是比较常用的,接下来我用代码来介绍如何实现一个分页查询 首先建立一个Model用来储存查询分页的信息 package com.haiziwang.qrlogin.utils; import java.util.List; public class prospage<T> { private int page; // 当前页数 private int totalCount; // 总记录数 private int totalPage; // 总页数 private int er

mongo中的分页查询

/** * @param $uid * @param $app_id * @param $start_time * @param $end_time * @param $start_page * @param $limit_page * mongodb中的分页查询 */ public static function getUserRevenueInfoList($uid, $source,$app_id, $start_time, $end_time,$skip, $limit){ $match

记录java中常用的英文单词01

专业缩写 POJO(plain ordinary java object)--简单的java对象 Spring-jdbc--为了使JDBC更加易于使用,spring在JDBC API上定义了一个抽象层,以此建立一个JDBC存取框架 quartz(job scheduling) --批处理框架,定时任务 单词 tokenizer --标记器 strict   [str?kt]  --精准的,绝对的 delimiter  [d?'l?m?t?]--定界符:分隔符 aggregator  [??gr?

SQL Server中的分页查询 select top

SQL Server中的分页查询 https://blog.csdn.net/tswc_byy/article/details/82053091 零.码仙励志 比我差的人还没放弃,比我好的人仍在努力,我就更没资格说我无能为力 一.建库和建表 create database scort use scort create table emp ( empno int primary key, ename nvarchar(10), sal int, deptno int ) insert into e