Effizientes Abrufen von Datenabsenken von Daten, ein wichtiger Aspekt der Pagination, erfordert die Fähigkeit, die Ergebnisse auszugleichen. Im Gegensatz zu vielen anderen Datenbanksystemen unterstützt SQL Server eine Offset -Klausel nicht nativ.
Das Problem: Mangel an einheimischen Offset
Betrachten Sie ein gemeinsames Szenario: Zeilen 51 bis 75 aus einer Tabelle abrufen. Der in andere Datenbanken verwendete einfache Ansatz:
select * aus mytable offset 50 limit 25
SELECT * FROM MyTable OFFSET 50 LIMIT 25
Lösungen für SQL Server (2005 und später):
SQL Server 2005 und spätere Versionen können eine abgeleitete Tabelle und die
row_number () Funktion: nutzen:
SELECT col1, col2
FROM (
SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum
FROM MyTable
) AS MyDerivedTable
WHERE MyDerivedTable.RowNum BETWEEN @startRow AND @endRow;
Dies weist jedem Datensatz eine eindeutige Zeilennummer zu, in der die Auswahl eines bestimmten Bereichs über die , wobei Klausel, die Offset -Funktionalität effektiv nachahmt.
.
Lösungen für SQL Server 2000:
Die Handhabung von Zeilen -Offsets in SQL Server 2000 ist komplexer. Ausführliche Tutorials und Methoden finden Sie in externen Ressourcen. Diese beinhalten häufig das Erstellen und Verwalten von temporären Tabellen, um Paginierung zu erreichen.
optimieren leistungsoptimieren:
für optimale Leistung:
, listen Sie nur die notwendigen Kolumnen auf.
.
im Beispiel) verbessern drastisch drastisch.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3