SQL: numerare i record selezionati

In questo articolo spiegherò come far numerare i record selezionati direttamente a SQL 2005.

Una delle funzioni più richieste, e allo stesso tempo più noiose da realizzare, è la numerazione dei record selezionati con uno statement SQL. La versione 2005 di MS SQL Server include una serie di nuove funzioni che ci possono aiutare in questo senso.

La funzione che andremo ad utilizzare per la numerazione sarà ROW_NUMBER().

ROW_NUMBER (letteralmente, numero di riga) si usa in questo modo:

SELECT
    ROW_NUMBER() OVER(ORDER BY Importo DESC) AS [RowNumber],
    CodCliente, NumeroOrdine, DataOrdine, ImportoOrdine
FROM
    Ordini

L’istruzione SELECT metterà il risultato in ordine discendente di importo (in base alla richiesta OVER(ORDER BY Importo DESC), e numererà le righe così ottenute.

Il resto della SELECT è una selezione classica.

Questo è l’utilizzo più semplice di ROW_NUMBER(), ma è già abbastanza per farcelo apprezzare.

Vedremo in seguito come usare ROW_NUMBER() per

  • numerazione a gruppi
  • estrazione di sub-set di record (simulazione della LIMIT di MySql)
  • estrazioni dei primi n record per gruppi

Replica

%d blogger hanno fatto clic su Mi Piace per questo: