www.colussimarco.it

Home » Wiki  »  SQL  »  Numerazione righe con ROW_NUMBER
Numerazione righe con ROW_NUMBER
Numerazione delle righe restituite da una query

Questo comando viene utilizzato con SQL e numera il set dei risultati restituito da una SELECT. ROW_NUMBER è un valore temporaneo che viene calcolato al momento dell'esecuzione della query e restituisce un numero progressivo a partire da 1 all'interno di una partizione di un set di risultati.

Sintassi

ROW_NUMBER ( )OVER ( [ PARTITION BY value_expression , … [ n ] ] order_by_clause )

Parametri

PARTITION BY value_expression
Raggruppa i dati a iquali viene applicata la funzione ROW_NUMBER.
value_expression
indicare per quali colonne raggruppare il set di dati. Se non viene specificato, la funzione considera tutte le righe della query.

Esempio 1

SELECT 
  ROW_NUMBER() OVER(ORDER BY campo_1 ASC) AS NumRiga,
  campo_1, campo_2
FROM tabella 
WHERE campo_3 < 5;
NumRiga  campo_1  campo_2
1valore_1valore_a
2valore_2valore_b
3valore_3valore_a
4valore_4valore_a

Esempio 2

SELECT 
  ROW_NUMBER() OVER(PARTITION BY campo_1 ASC) AS NumRiga,
  campo_1, campo_2
FROM tabella 
WHERE campo_3 < 5;

NumRiga  campo_1  campo_2
1valore_1valore_a
2valore_4valore_a
3valore_3valore_a
4valore_2valore_b


Esempio 3

DELETE
FROM
(

SELECT ROW_NUMBER() OVER(PARTITION BY campo_1 ASC) AS NumRiga, campo_1, campo_2 FROM tabella) AS Res WHERE NumRiha > 1;

Cancella tutte le righe duplicate secondo campo_1 dove il NumRiga è maggiore di 1

NumRiga  campo_1  campo_2
1valore_1valore_a
1valore_2valore_b


NumRiga  campo_1  campo_2
1valore_1valore_a
1valore_2valore_b


Documentazione Microsoft la si può trovare qui.

Scroll to Top