• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    SQL SERVER的有哪幾種分頁方式

    東西:SQL SERVER 2017

    方式/步調

    1. 1

      第一種:ROW_NUMBER() OVER()體例

      把表中的所稀有據都按照一個ROW_NUMBER進行排序,然后查詢ROW_NUMBER 10?到20之間的前十筆記錄。

      SELECT * FROM (?

          SELECT *, ROW_NUMBER() OVER(ORDER BY LOG_ID ) AS ROWID FROM LOG_SYSTEM

        ) AS B

      WHERE ROWID BETWEEN 10 AND 20?

      ---WHERE ROWID BETWEEN 當前頁數-1*條數 AND 頁數*條數---? ? ?

      3812b31bb051f81976653a43d5b44aed2e73e773.jpg
    2. 2

      第二種體例:OFFSET FETCH NEXT體例(SQL2012以上的版本才撐持:保舉利用 )

      利用OFFSET是SQLServer2012新具有的分頁功能,本家兒要功能是從第x條數據起頭共取y數據。可是其必需根再Order By后面利用,比擬前三種體例加倍便利。

      SELECT * FROM LOG_SYSTEM?

      ORDER BY LOG_ID?

      OFFSET 4 ROWS FETCH NEXT 5 ROWS ONLY

      ---ORDER BY LOG_ID?

      ? ?OFFSET 頁數 ROWS FETCH NEXT 條數 ROWS ONLY ---

      a50f4bfbfbedab64dad674c9f836afc379311e16.jpg
    3. 3

      --第三種體例:--TOP NOT IN體例 (順應于數據庫2012以下的版本)

      先搜出id在1-15之間的數據,緊接著搜出id不在1-15之間的數據,最后將搜出的成果取前十條。

      SELECT TOP 10 * FROM LOG_SYSTEM?

      WHERE LOG_ID NOT IN (SELECT TOP 15 LOG_ID FROM LOG_SYSTEM)

      ---WHERE ID NOT IN (SELECT TOP 條數*頁數? LOG_ID? FROM LOG_SYSTEM)? ---

      342ac65c10385343bc6dbe289c13b07eca80881c.jpg
    4. 4

      --第四種體例:用存儲過程的體例進行分頁?

      CREATE PROCEDURE PAGE_DEMO

      @TABLENAME VARCHAR(20),

      @PAGESIZE INT,

      @PAGE INT

      AS

      DECLARE @NEWSPAGE INT,

      @RES VARCHAR(100)

      BEGIN

      SET @NEWSPAGE=@PAGESIZE*(@PAGE - 1)

      SET @RES='SELECT * FROM ' +@TABLENAME+ ' ORDER BY LOG_ID OFFSET '+CAST(@NEWSPAGE AS VARCHAR(10)) +' ROWS FETCH NEXT '+ CAST(@PAGESIZE AS VARCHAR(10)) +' ROWS ONLY'

      EXEC(@RES)

      END

      EXEC PAGE_DEMO @TABLENAME='LOG_SYSTEM',@PAGESIZE=3,@PAGE=5

      GO

      7acb0a46f21fbe0941d3fa1d64600c338744ad2d.jpg
    5. 5

      小結

      自我感受第二種體例很是的簡單,不冗余因為沒有嵌套查詢啊,少了Sql語句的嵌套,就少了“視覺上的邏輯”,可是大師必然要切記,這種體例只是適合SqlServer 2012以及更高的版本。由上面的例子可以看出,SqlServer簡直挺壯大的,可是若是我們貧乏發現“功能” 的眼睛的話,Sql Server再壯大對我們來說也沒有。

      6d81800a19d8bc3e29dd35bb8d8ba61ea9d345ed.jpg
    • 發表于 2019-10-28 22:57
    • 閱讀 ( 1447 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆