Query ricorsive
Esplorare strutture gerarchiche
Sezione intitolata “Esplorare strutture gerarchiche”Le query ricorsive servono quando i dati hanno una struttura a livelli. Per esempio:
- cartelle e sottocartelle
- categorie e sotto-categorie
- dipendenti e responsabili
In questi casi non basta guardare solo un livello. Devi poter salire o scendere nella gerarchia.
WITH RECURSIVE numeri AS ( SELECT 1 AS n UNION ALL SELECT n + 1 FROM numeri WHERE n < 5)SELECT * FROM numeri;Questo esempio non usa una gerarchia vera, ma mostra il meccanismo: la query parte da un valore iniziale e poi genera il successivo finché la condizione resta valida.
Perché si chiamano ricorsive
Sezione intitolata “Perché si chiamano ricorsive”Si chiamano così perché una parte della query usa il risultato generato dalla query stessa. È un’idea potente, ma richiede ordine mentale.
Il meccanismo ha due elementi: un punto di partenza e una regola che produce il passo seguente.
Quando usarle
Sezione intitolata “Quando usarle”Sono molto utili quando vuoi percorrere un albero o una gerarchia senza farlo manualmente riga per riga.
All’inizio sono più difficili da leggere, quindi conviene seguire separatamente il punto di partenza e la regola ricorsiva.