SQL Server在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù)的兩種方法

2019-01-01 23:25:07 來源:互聯(lián)網(wǎng)作者:佚名 人氣: 次閱讀 743 條評(píng)論

本文通過兩種方法給大家介紹SQL Server 在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧。SQL Server 獲取數(shù)據(jù)的總記錄數(shù),有兩種方式:1.先分頁獲...

本文通過兩種方法給大家介紹SQL Server 在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧。

SQL Server 獲取數(shù)據(jù)的總記錄數(shù),有兩種方式:

1.先分頁獲取數(shù)據(jù),然后再查詢一遍數(shù)據(jù)庫獲取到總數(shù)量

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

  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

第二種方式既分頁還能獲取到總記錄數(shù)量。就是多一個(gè)字段,如果獲取一次數(shù)據(jù)較多的話,會(huì)浪費(fèi)一些流量。

如果使用第一種的話,會(huì)多訪問一次數(shù)據(jù)庫,增加一次數(shù)據(jù)連接的關(guān)閉和打開,會(huì)消耗數(shù)據(jù)庫資源。

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

注意:目前發(fā)現(xiàn)只有sqlserver有,MySQL沒有這個(gè)效果,大家如果發(fā)現(xiàn)其他的可以使用

總結(jié)

以上所述是小編給大家介紹的SQL Server 在分頁獲取數(shù)據(jù)的同時(shí)獲取到總記錄數(shù),希望對(duì)大家有所幫助,