À l’aide d’UNION, plusieurs instructions SELECT peuvent être spécifiées et leurs résultats peuvent être combinés en un seul ensemble de résultats.
Une UNION doit être composée de deux ou plusieurs instructions SELECT, chacune séparée par le mot-clé UNION.
Chaque requête dans une UNION doit contenir les mêmes colonnes, expressions ou fonctions d’agrégation Les types de données des colonnes doivent être compatibles
Les noms de colonne dans le jeu de résultats sont généralement égaux aux noms de colonne dans la première instruction SELECT de l’UNION.
Syntaxe : UNION
SELECT Nom_Colonne(s) FROM table1
UNION
SELECT Nom_Colonne(s) FROM table2;
L’UNION supprime automatiquement toutes les lignes en double du jeu de résultats de la requête.
Si vous voulez que toutes les occurrences de toutes les correspondances soient renvoyées, vous pouvez utiliser UNION ALL.
Syntaxe : UNION ALL
SELECT Nom_Colonne(s) FROM table1
UNION ALL
SELECT Nom_Colonne(s) FROM table2;
Base de données DB2 :
Examinons les données du tableau “Commandes” ci-dessous :
Numéro-Commande | Numéro-Client | Date-Commande | Ville |
---|---|---|---|
1001 | 10 | 2020-09-08 | Londres |
1002 | 99 | 2020-09-01 | New York |
1003 | 17 | 2020-08-25 | Paris |
1004 | 76 | 2020-09-19 | Dubai |
1005 | 44 | 2020-09-25 | Sidney |
Examinons les données du tableau “Clients” ci-dessous :
Numéro-Client | Nom-Cient | Pays | Ville |
---|---|---|---|
76 | Jack | Amérique | New York |
17 | Jancy | Allemagne | Californie |
20 | Carmen | Russie | Londres |
10 | robert | Inde | New Delhi |
99 | Brian | Chine | Chennai |
Exemple 1:
L’instruction SQL suivante renvoie les villes (uniquement des valeurs distinctes) des tables “Commandes” et “Clients”.
SELECT Ville FROM Commandes
UNION ALL
SELECT Ville FROM Clients
ORDER BY Ville ;
Si “Commandes” ou “Clients” ont la même ville, chaque ville ne sera listée qu’une seule fois, car UNION ne sélectionne que des valeurs distinctes. Utilisez UNION ALL pour inclure les valeurs en double.
Résultat:
Ville |
---|
Californie |
Chennai |
Dubai |
Londres |
New Delhi |
New York |
Paris |
Sidney |
Si vous souhaitez que toutes les occurrences de toutes les correspondances soient renvoyées, vous pouvez utiliser UNION ALL au lieu de UNION.
Exemple 2 :
L’instruction SQL suivante renvoie les villes (avec des doublons) des tables “Commandes” et “Clients”.
SELECT Ville FROM Commandes
UNION
SELECT Ville FROM Clients
ORDER BY Ville ;
Si “Commandes” ou “Clients” ont la même ville, chaque ville ne sera listée qu’une seule fois, car UNION ne sélectionne que des valeurs distinctes. Utilisez UNION ALL pour sélectionner également les valeurs en double
Résultat:
Ville |
---|
Californie |
Chennai |
Dubai |
Londres |
Londres |
New Delhi |
New York |
New York |
Paris |
Sidney |