SQL Server 怎么在分頁獲取數據的同時獲取到總記錄數


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

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

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

SELECT
    *
FROM
    (
    SELECT
        ROW_NUMBER() OVER(ORDER BY Id DESC) rn,    
        COUNT(1) OVER() AS TotalCount,
        Id
    FROM
        dbo.T_User
    )a
WHERE
    a.rn BETWEEN 1 AND 5

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

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

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

注意:目前發現只有sqlserver有,mysql沒有這個效果,大家如果發現其他的可以使用,可以評論。3Q.


免責聲明!

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



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