Sto cercando di fare qualcosa del tipo:
SELECT * FROM table LIMIT 10,20
o
SELECT * FROM table LIMIT 10 OFFSET 10
ma utilizzando SQL Server
L'unica soluzione che ho trovato sembra eccessiva:
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases
) a WHERE row > 5 and row <= 10
Ho anche trovato :
SELECT TOP 10 * FROM stuff;
... ma non è quello che voglio fare poiché non riesco a specificare il limite iniziale.
C'è un altro modo per farlo?
Inoltre, solo curioso, c'è un motivo per cui SQL Server non supporta la LIMITfunzione o qualcosa di simile? Non voglio essere cattivo, ma sembra davvero qualcosa di cui un DBMS ha bisogno ... Se lo fa, allora mi dispiace di essere così ignorante! Ho lavorato con MySQL e SQL + negli ultimi 5 anni, quindi ...
ROW_NUMBER()e la limitazione conTOPper l'ampiezza dell'intervallo e unaWHEREcondizione per un limite dell'intervallo è il migliore che sono riuscito a raggiungere. Ho anche notato prestazioni molto migliori se laTOPclausola utilizza un valore letterale anziché variabile