TOP

Istruzione SQL UNION

SQL UNION Descrizione

L'operatore UNION viene utilizzato per combinare il set di risultati di due o più istruzioni SELECT.

  • Ogni istruzione SELECT in UNION deve avere lo stesso numero di colonne
  • Anche le colonne devono avere tipi di dati simili
  • Anche le colonne in ciascuna istruzione SELECT devono essere nello stesso ordine

  • UNION Sintassi

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2
    

    UNION ALL Sintassi

    L'operatore UNION seleziona solo valori distinti per impostazione predefinita. Per consentire valori duplicati, utilizzare UNION ALL:

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2
    
    I nomi delle colonne nel set di risultati in genere corrispondono ai nomi delle colonne nella prima istruzione SELECT.

    Banca dati dimostrativa

    In questo tutorial utilizzeremo il famoso database di esempio "Northwind".

    Di seguito è riportato un esempio della tabella "Customers" ("Clienti"):

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    E l'esempio dalla tabella "Suppliers" ("Fornitori"):

    SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
    1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
    2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
    3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
    4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
    5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

    SQL UNION Esempio

    La seguente istruzione SQL seleziona le città (solo valori diversi) dalle tabelle Clienti e Fornitori:

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    Se alcuni clienti o fornitori hanno la stessa città (City), ciascuna città verrà specificata una sola volta perché UNION seleziona solo valori diversi. Usa UNION ALL per selezionare anche i valori duplicati!

    SQL UNION ALL Esempio

    La seguente istruzione SQL seleziona le città (anche i valori duplicati) dalle tabelle Clienti e Fornitori:

    Run SQLSELECT City FROM Customers 
    UNION ALL 
    SELECT City FROM Suppliers 
    ORDER BY City
    

    SQL UNION insieme a WHERE

    La seguente istruzione SQL seleziona le città tedesche (solo valori diversi) dalle tabelle Clienti e Fornitori:

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    SQL UNION ALL insieme a WHERE

    La seguente istruzione SQL seleziona le città tedesche (anche i valori duplicati) dalle tabelle Clienti e Fornitori:

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION ALL 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    Un altro esempio SQL UNION

    La seguente istruzione SQL elenca tutti i clienti e i fornitori:

    Run SQLSELECT 'Customer' AS Type, ContactName, City, Country 
    FROM Customers 
    UNION 
    SELECT 'Supplier', ContactName, City, Country 
    FROM Suppliers
    

    Nota che "AS Type" sopra è un alias. Gli alias SQL vengono utilizzati per assegnare un nome temporaneo a una tabella o colonna. L'alias esiste solo per la durata della richiesta. Quindi, qui abbiamo creato una colonna temporanea chiamata "Type" che indica se il contatto è un "Cliente" o un "Fornitore".