天天看點

oracle中rownum的使用

簡單的說:oracle中同時使用rownum和order by時,要對子查詢用order by,對父查詢用rownum

代碼示例:

<!-- 根據判重時的資料查找ins主鍵 使用rownum并需要排序的話,必須先用子查詢進行排序-->

 <select id="selectPkInsId"

  parameterClass="com.sinosig.premiumServicebus.bean.Client_Message"

  resultClass="java.lang.Long">

  select i.pk_t_ins_id from ( select info.pk_t_ins_id from

  t_se_insurance_info info where info.cont_tel = #body.CONTTEL#

  <dynamic>

   <!-- 是新車 -->

   <isEqual prepend="" property="body.NEWVEHICLE"

    compareValue="1">

    <isNotEmpty prepend="and" property="body.CONTNAME">

     cont_name=#body.CONTNAME#

    </isNotEmpty>

   </isEqual>

   <!-- 非新車 -->

    compareValue="0">

    <isNotEmpty prepend="and" property="body.LICENSENO">

     num_plate=#body.LICENSENO#

   <isNotEqual prepend="and" property="body.agentCode"

    compareValue="00000000">

    substr(info.purgecode,0,2) = 'DM'

   </isNotEqual>

   <isEqual prepend="and" property="body.agentCode"

    substr(info.purgecode,0,2) = 'WB'

  </dynamic>

  order by info.pk_t_ins_id desc ) i where rownum = 1

 </select>

本文轉自 winters1224 51CTO部落格,原文連結:http://blog.51cto.com/winters1224/797847,如需轉載請自行聯系原作者