Lessico IT › Database › CTE (Common Table Expression)

CTE (Common Table Expression)

Database Svenska → Aggiornato: 2026-10-05

Un risultato temporaneo con nome, definito con WITH, che esiste solo per la durata di una query. Rende leggibili le query complesse scomponendole in passaggi con nome invece che in sottoquery profondamente annidate.

Sintassi: WITH active AS (SELECT ... WHERE active), totals AS (SELECT ... FROM active ...) SELECT * FROM totals. Vantaggi: leggibilità (si legge dall'alto verso il basso come una pipeline), riuso (la stessa CTE può essere richiamata più volte) e ricorsione. Una CTE ricorsiva (WITH RECURSIVE) gestisce gerarchie e grafi: organigrammi, thread di commenti, cammini minimi. Nota sulle prestazioni: nelle vecchie versioni di PostgreSQL (<12) una CTE era una «barriera di ottimizzazione» (sempre materializzata) e poteva essere più lenta di una sottoquery; dalla 12 viene espansa in linea quando possibile (MATERIALIZED/NOT MATERIALIZED controllano questo comportamento). Standard SQL:1999. Insieme alle funzioni finestra, è la colonna portante dell'SQL analitico leggibile.

← Torna al lessico