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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM