Sto cercando di alcuni expresion come questo (utilizzando SQL Server 2008)restituire le righe tra una gamma specifica, con una sola istruzione SELECT
SELECT TOP 10 columName FROM tableName
Ma invece di che ho bisogno dei valori compresi tra 10 e 20. E Mi chiedo se ci sia un modo di farlo usando una sola istruzione SELECT.
Per esempio, questo è inutile:
SELECT columName FROM
(SELECT ROW_NUMBER() OVER(ORDER BY someId) AS RowNum, * FROM tableName) AS alias
WHERE RowNum BETWEEN 10 AND 20
Perché le staffe di selezione interna è già tornando tutti i risultati, e sto cercando di evitare che, a causa di prestazioni.
L'aggiornamento a SQL Server 2012 di solito non è un'opzione "schiocca le dita". E direi che * ci sono * migliori risposte nelle versioni precedenti di SQL Server. Ad esempio, perché non recuperare solo i valori * chiave * quando si applicano i numeri di riga, quindi unire quell'output (che sarà * molto * skinner) con la tabella? –
@ AaronBertrand, hai ragione.Sono completamente d'accordo sul fatto che l'aggiornamento non è facile, ma nel caso in cui OP stia usando questa affermazione molto e si preoccupa davvero delle prestazioni, questo è qualcosa che lui/lei può prendere in considerazione. – RAS