Opérateur SQL UNION

À 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-CommandeNuméro-ClientDate-CommandeVille
1001102020-09-08Londres
1002992020-09-01New York
1003172020-08-25Paris
1004762020-09-19Dubai
1005442020-09-25Sidney

Examinons les données du tableau “Clients” ci-dessous :

Numéro-ClientNom-CientPaysVille
76JackAmériqueNew York
17JancyAllemagneCalifornie
20CarmenRussieLondres
10robertIndeNew Delhi
99BrianChineChennai

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