Ich versuche so etwas wie:
SELECT * FROM table LIMIT 10,20
oder
SELECT * FROM table LIMIT 10 OFFSET 10
aber mit SQL Server
Die einzige Lösung, die ich gefunden habe, sieht nach Overkill aus:
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases
) a WHERE row > 5 and row <= 10
Ich fand auch :
SELECT TOP 10 * FROM stuff;
... aber es ist nicht das, was ich tun möchte, da ich das Startlimit nicht angeben kann.
Gibt es eine andere Möglichkeit für mich, das zu tun?
Nur neugierig, gibt es einen Grund, warum SQL Server die LIMIT
Funktion oder ähnliches nicht unterstützt? Ich möchte nicht gemein sein, aber das klingt wirklich nach etwas, das ein DBMS braucht ... Wenn ja, dann tut es mir leid, dass ich so unwissend bin! Ich arbeite seit 5 Jahren mit MySQL und SQL +, also ...
ROW_NUMBER()
und eine BegrenzungTOP
für die Breite des Bereichs und eineWHERE
Bedingung für eine Grenze des Bereichs zu verwenden, die ich erreichen konnte. Ich habe auch eine viel bessere Leistung festgestellt, wenn dieTOP
Klausel ein Literal anstelle einer Variablen verwendet