Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Query > Query di combinazione
PrecedenteElenchi di selezioneClassificazione di righeSuccessivo

7.4. Query di combinazione

I risultati di due query possono essere combinati usando le operazioni sugli insiemi unione, intersezione, e differenza. La sintassi è

query1 UNION [ALL] query2
query1 INTERSECT [ALL] query2
query1 EXCEPT [ALL] query2

query1 e query2 sono query che possono usare qualsiasi delle caratteristiche discusse fino a questo punto. Operazioni sugli insiemi possono anche essere annidate o concatenate, per esempio

query1 UNION query2 UNION query3

che viene eseguito come:

(query1 UNION query2) UNION query3

UNION effettivamente aggiunge il risultato di query2 al risultato di query1 (anche se non c'è garanzia che questo sia l'ordine nel quale le righe sono effettivamente restituite). Inoltre, esso elimina righe duplicate dal suo risultato, nello stesso modo di DISTINCT, a meno che non sia usata UNION ALL.

INTERSECT restituisce tutte le righe che sono sia nel risultato di query1 che nel risultato di query2. Le righe duplicate sono eliminate a meno che sia usata INTERSECT ALL.

EXCEPT restituisce tutte le righe che sono nel risultato di query1 ma non nel risultato di query2. (A volte questa viene chiamata differenza tra due query). Di nuovo, i duplicati vengono eliminati a meno che sia usata EXCEPT ALL.

Per calcolare l'union, l'intersezione o la differenza di due query, le due query devono essere «compatibili alla union», che significa che restituiscono lo stesso numero di colonne e le colonne corrispondenti hanno tipi di dato compatibili, come descritto in Sezione 10.5, «UNION, CASE, and Related Constructs».

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Query > Query di combinazione
PrecedenteElenchi di selezioneClassificazione di righeSuccessivo