Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mendapatkan jumlah baris total dari OFFSET / FETCH NEXT

Saya mengalami beberapa masalah kinerja menggunakan metode COUNT() OVER(). (Saya tidak yakin apakah itu server karena butuh 40 detik untuk mengembalikan 10 catatan dan kemudian tidak ada masalah.) Teknik ini bekerja dalam semua kondisi tanpa harus menggunakan COUNT( ) OVER() dan melakukan hal yang sama:

DECLARE 
    @PageSize INT = 10, 
    @PageNum  INT = 1;

WITH TempResult AS(
    SELECT ID, Name
    FROM Table
), TempCount AS (
    SELECT COUNT(*) AS MaxRows FROM TempResult
)
SELECT *
FROM TempResult, TempCount
ORDER BY TempResult.Name
    OFFSET (@PageNum-1)*@PageSize ROWS
    FETCH NEXT @PageSize ROWS ONLY


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ulangi tanpa kursor di SQL Server 2005

  2. Pilih baris teratas hingga nilai di kolom tertentu muncul dua kali

  3. Jenis parameter tidak valid (numpy.int64) saat memasukkan baris dengan executemany()

  4. Bagaimana cara memeriksa variabel tabel dan tabel sementara dari dalam sesi debugging di SSMS 2008?

  5. Kesalahan sql pada pembaruan:Pernyataan UPDATE bertentangan dengan batasan FOREIGN KEY