Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

OFFSET / FETCH NEXT से कुल पंक्ति गणना प्राप्त करना

मुझे COUNT() OVER() विधि का उपयोग करके कुछ प्रदर्शन समस्याओं का सामना करना पड़ा। (मुझे यकीन नहीं है कि यह सर्वर था क्योंकि 10 रिकॉर्ड वापस करने में 40 सेकंड का समय लगा और फिर बाद में कोई समस्या नहीं हुई।) इस तकनीक ने COUNT( का उपयोग किए बिना सभी परिस्थितियों में काम किया। ) OVER() और वही काम पूरा करता है:

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. SQL सर्वर में sys.views, sys.system_views और sys.all_views के बीच अंतर

  2. एमएस एसक्यूएल सर्वर में एक्सटेंडेड स्टोर्ड प्रोसीजर क्या है?

  3. SQL सर्वर में UTC मिलीसेकंड को DATETIME में कनवर्ट करें

  4. स्ट्रिंग से किसी भी पिछली संख्या को कैसे हटाएं?

  5. ट्रांसपोज़िंग टेबल