7.4. Combiner des requ�tes

Les r�sultats de deux requ�tes peuvent �tre combin�s en utilisant les op�rations d'ensemble : union, intersection et diff�rence. La syntaxe est

requete1 UNION [ALL]
requete2
requete1 INTERSECT [ALL]
requete2
requete1 EXCEPT [ALL]
requete2

requete1 et requete2 sont les requ�tes pouvant utiliser toutes les fonctionnalit�s discut�es ici. Les op�rations d'ensemble peuvent aussi �tre combin�es et cha�n�es, par exemple

requete1 UNION requete2
UNION requete3

signifie r�ellement

(requete1 UNION requete2)
UNION requete3

UNION ajoute effectivement le r�sultat de requete2 au r�sultat de requete1 (bien qu'il n'y ait pas de garantie qu'il s'agit de l'ordre dans lequel les lignes sont r�ellement renvoy�es). De plus, il �limine les lignes dupliqu�es du r�sultat, de la m�me fa�on que DISTINCT, sauf si UNION ALL est utilis�e.

INTERSECT renvoie toutes les lignes qui sont � la fois dans le r�sultat de requete1 et dans le r�sultat de requete2. Les lignes dupliqu�es sont �limin�es sauf si INTERSECT ALL est utilis�.

EXCEPT renvoie toutes les lignes qui sont dans le r�sultat de requete1 mais pas dans le r�sultat de requete2. (Ceci est quelque fois appel� la diff�rence entre deux requ�tes.) De nouveau, les lignes dupliqu�es sont �limin�es sauf si EXCEPT ALL est utilis�.

Pour calculer l'union, l'intersection ou la diff�rence de deux requ�tes, les deux requ�tes doivent �tre <<�compatibles pour une union�>>, ce qui signifie qu'elles doivent renvoyer le m�me nombre de colonnes et que les colonnes correspondantes doivent avoir des types de donn�es compatibles, comme d�crit dans Section 10.5.