Introduzione alla ricorsione

Query gerarchiche e ricorsive in SQL Server

Jasmin Ludolf

Content Developer

Cos'è la ricorsione?

La ricorsione usa una procedura, subroutine, funzione o algoritmo che chiama sé stesso una o più volte finché non si soddisfa una condizione

Immagine della proprietà ricorsiva che si richiama più volte.

Query gerarchiche e ricorsive in SQL Server

Esempio reale di ricorsione

Albero genealogico - Trova tutti i padri per le ultime 5 generazioni

  • Riduci il problema a uno più piccolo dello stesso tipo
    1. Problema intero: trovare tutte e cinque le generazioni
    2. Problema piccolo: trovare il padre, poi il padre del padre, ...
  • Limita il numero di passi

La proprietà ricorsiva della Torre di Hanoi.

Query gerarchiche e ricorsive in SQL Server

Fatti sulla ricorsione

Vantaggi:

  • Risolve problemi in modo ricorsivo
  • Facile da leggere e seguire
  • La ricorsione si limita con una condizione di terminazione

Svantaggi:

  • Esecuzione lenta
Query gerarchiche e ricorsive in SQL Server

Esempio di ricorsione - Somma di numeri

Definizione matematica

La somma di numeri consecutivi è definita ricorsivamente così:

number = 1 
    for iteration = 1
number = number + (iteration - 1) 
    for iteration > 1

La somma dei numeri fino a 5 è:

1+2+3+4+5 = 15
Query gerarchiche e ricorsive in SQL Server

Esempio di ricorsione - Somma di numeri

  • Ricorsione in SQL: Common Table Expression - CTE
WITH calculate_SumOfNumber AS
     ( -- Initial Query
    SELECT 1 AS iteration, 1 AS SumOfNumber

UNION ALL -- Recursive Part SELECT iteration + 1, SumOfNumber + (iteration + 1) FROM calculate_SumOfNumber
WHERE iteration < 6 )
SELECT SumOfNumber FROM calculate_SumOfNumber
Query gerarchiche e ricorsive in SQL Server

Passiamo alla pratica!

Query gerarchiche e ricorsive in SQL Server

Preparing Video For Download...