SqlServer 分頁批按時間排序


 

  sql server 分頁按時間排序

 

   select * from (select<include refid="Base_Column_List"/>, ROW_NUMBER() OVER(Order by check_date )-1 AS RowNumber
    from user
    <include refid="pageListQueryCondition"/>
    ) c
    where RowNumber BETWEEN (#{pagination.page,jdbcType=INTEGER}-1)*#{pagination.rows,jdbcType=INTEGER}
    and #{pagination.page,jdbcType=INTEGER}*#{pagination.rows,jdbcType=INTEGER}-1

 

總體思路是:使用SqlServer中的ROW_NUMBER() OVER(按某一屬性升序或降序)函數來對我們所有的數據進行排序,從1開始,為每一條分組記錄返回一個數字。

  使用:SELECT * FROM (SELECT *,row=row_number() OVER(ORDER BY name DESC) FROM tableOne ) AS rowTable WHERE rowTable BETWEEN + ((curPage.intValue() - 1) * PageCount.intValue() + 1) + " AND " + curPage.intValue()*PageCount.intValue();

  這句話的意思就是先將tableOne中所有的數據按照name字段的降序排好序作為新表rowTable,然后按照當前頁curPage和每頁行數PageCount進行分頁,因為排序是從1開始的,所以PageCount也是從1開始,這樣就可以做到先將所有數據排序在進行分頁。


免責聲明!

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



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