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

SQL सर्वर 2005 का उपयोग कर सर्वश्रेष्ठ पेजिंग समाधान?

उस आकार की तालिका के लिए, कॉमन-टेबल एक्सप्रेशन (CTE) और ROW_NUMBER का उपयोग करें; @PageNumber . के आधार पर वापस लाने के लिए रिकॉर्ड की गणना करने के लिए एक छोटे फ़ंक्शन का उपयोग करें और @PageSize चर (या जो भी आप उन्हें कॉल करना चाहते हैं)। हमारी संग्रहित प्रक्रियाओं में से एक का सरल उदाहरण:

-- calculate the record numbers that we need

DECLARE @FirstRow INT, @LastRow INT
SELECT  @FirstRow   = ((@PageNumber - 1) * @PageSize) + 1,
        @LastRow    = ((@PageNumber - 1) * @PageSize) + @PageSize

;
WITH CTE AS
(
    SELECT [Fields]
           , ROW_NUMBER() OVER (ORDER BY [Field] [ASC|DESC]) as RowNumber 
    FROM [Tables]
    WHERE [Conditions, etc]
)
SELECT * 
       -- get the total records so the web layer can work out
       -- how many pages there are
       , (SELECT COUNT(*) FROM CTE) AS TotalRecords
FROM CTE
WHERE RowNumber BETWEEN @FirstRow AND @LastRow
ORDER BY RowNumber ASC


  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 सर्वर आँकड़ों को बेहतर बनाने में मदद करें!

  2. T-SQL का उपयोग करके SQL सर्वर डेटाबेस के पुनर्प्राप्ति मॉडल को कैसे बदलें

  3. टी-एसक्यूएल डायनेमिक एसक्यूएल और टेम्प टेबल्स

  4. मैं क्लॉज में उपनाम का उपयोग कैसे करूं?

  5. SQL सर्वर में दो तिथियों के बीच घंटों (दशमलव) में अंतर की गणना कैसे करें?