Union in SQL

Nel linguaggio SQL l'operatore UNION mi permette di unire i valori di due o più colonne in un'unica colonna.

SELECT att1 FROM tab
UNION [ALL]
SELECT att2 FROM tab

Dove att1 e att2 sono gli attributi (colonne) mentre tab è la tabella.

Gli attributi possono anche trovarsi in tabelle diverse.

Il risultato dell'operazione UNION è una colonna contenente l'unione di tutti i valori dell'attributo att1 e att2.

Nota. Gli attributi possono anche essere più di uno per tabella. L'importante è che ci sia un numero uguale di attributi a sinistra e a destra e il dominio dei dati sia compatibile.

L'operatore UNION è uno degli operatori insiemistici del linguaggio SQL.

Di default l'unione esclude i valori duplicati dal risultato.

Per includere i valori duplicati devo aggiungere la clausola ALL.

Nota. Nel risultato finale dell'interrogazione il nome delle colonne è definito dai nomi del primo operando (att1). E' opportuno tenerlo a mente perché non sempre identifica l'informazione. A volte è preferibile modificarlo con un alias.

    Un esempio pratico

    Ho una tabella Studenti

    tabella persone

    Voglio creare una colonna con tutte le città di nascita e di residenza degli studenti escludendo le duplicazioni.

    Per farlo utilizzo l'operatore UNION

    SELECT Nascita AS Città FROM Studenti
    UNION
    SELECT Residenza From Studenti

    Il risultato finale è la lista delle città senza valori duplicati.

    il risultato dell'unione

    Nota. Nella SELECT ho aggiunto un alias (AS) nella prima selezione per cambiare il nome della colonna da Nascita a Città. L'ho fatto perché nella Union il nome delle colonne è definito dalla prima interrogazione. Senza l'alias la tabella del risultato si sarebbe chiamata Nascita e non avrebbe comunicato bene l'informazione che contiene ossia le città.

    Esempio 2

    Per ottenere la lista delle città con i valori duplicati, utilizzo la UNION ALL

    SELECT Nascita AS Città FROM Studenti
    UNION ALL
    SELECT Residenza From Studenti

    In questo caso il risultato è la lista delle città con tutti i valori duplicati.

    il risultato con le duplicazioni

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    SQL