Sql server ricorsivo cte

Sql server ricorsivo cte
Le espressioni comuni della tabella, o CTE in breve, sono una funzionalità utile in SQL che consente di definire un set di risultati denominato temporaneo che un'altra query può utilizzare.

Un CTE ricorsivo, sulla mano, è un'espressione CTE che si riferisce. Un CTE ricorsivo funziona restituendo un sottoinsieme e quindi si fa riferimento fino a quando non restituisce tutti i risultati.

I CTE ricorsivi sono utili durante la domanda di set di dati nidificati/multilivello o gerarchici. Ad esempio, se si dispone di un componente che contiene altri dati e che i dati contengono altri dati nidificati, un CTE ricorsivo è un buon modo per interrogare tali dati.

Sql server ricorsivo cte

Quanto segue raffigura la sintassi per l'esecuzione di un CTE ricorsivo:

Con espressione_name (column_list)
COME
(
iniziale_query
Unione tutto
ricorsive_query
)
SELEZIONARE *
Da espressione_name

Esempio - Esempio CTE ricorsivo di base

Il seguente esempio mostra l'utilizzo di base della funzione CTE ricorsiva in SQL Server:

con CTE (N) come
(
SELEZIONARE
1
Unione tutto
SELEZIONARE
N + 1
DA
cte
DOVE
N < 5
)
SELEZIONARE
*
DA
cte;

Produzione:

n |
-+
1 |
2 |
3 |
4 |
5 |

Esempio 2 - Utilizzo di CTE per calcolare il giorno della settimana.

L'esempio seguente mostra come utilizzare CTE ricorsivo per determinare il numero di giorni in una settimana.

Con cte_exec (n,
giorno della settimana)
COME (
SELEZIONARE
0,
DateName (W, 0)
Unione tutto
SELEZIONARE
N + 1,
DateName (W, N + 1)
DA
cte_exec
DOVE
N < 6
)
SELEZIONARE
giorno della settimana
DA
cte_exec;

L'output risultante è come mostrato:

Conclusione

Questa è la base stessa del lavoro con CTE ricorsivi in ​​SQL Server.