SQL Server在分頁獲取資料的同時獲取到總記錄數的兩種方法

發表於2019-01-01
本文透過兩種方法給大家介紹SQL Server 在分頁獲取資料的同時獲取到總記錄數,感興趣的朋友跟隨指令碼之家小編一起學習吧。

SQL Server 獲取資料的總記錄數,有兩種方式:

1.先分頁獲取資料,然後再查詢一遍資料庫獲取到總數量

2.使用count(1) over()獲取總記錄數量

  1. SELECT
  2.   *
  3. FROM
  4.   (
  5.   SELECT
  6.     ROW_NUMBER() OVER(ORDER BY Id DESC) rn, 
  7.     COUNT(1) OVER() AS TotalCount,
  8.     Id
  9.   FROM
  10.     dbo.T_User
  11.   )a
  12. WHERE
  13.   a.rn BETWEEN 1 AND 5

第二種方式既分頁還能獲取到總記錄數量。就是多一個欄位,如果獲取一次資料較多的話,會浪費一些流量。

如果使用第一種的話,會多訪問一次資料庫,增加一次資料連線的關閉和開啟,會消耗資料庫資源。

第二種方式還是我同事開始使用的,然後我們就這樣使用了。

注意:目前發現只有sqlserver有,MySQL沒有這個效果,大家如果發現其他的可以使用

總結

以上所述是小編給大家介紹的SQL Server 在分頁獲取資料的同時獲取到總記錄數,希望對大家有所幫助,

相關文章