UNION
Renvoie les lignes de toutes les tables, en éliminant les doublons.Correspond à l'opération logique OU.
Exemple : afficher les employés dont le nom commence par A ou S.
SELECT ename FROM emp WHERE ename LIKE 'A%' UNION SELECT ename FROM emp WHERE ename LIKE 'S%';
UNION ALL
Fait la même chose queUNION sans élimier les doublons.
INTERSECT
Renvoie les lignes présentes dans chacune des tables, en éliminant les doublons.Correspond à l'opération logique ET.
Exemple : afficher les employés dont le nom commence par A et finit par S.
SELECT ename FROM emp WHERE ename LIKE 'A%' INTERSECT SELECT ename FROM emp WHERE ename LIKE '%S';
MINUS
Renvoie les lignes présentes dans la première table, en enlevant les lignes présentes dans les tables suivantes.Exemple : afficher les employés dont le nom commence par la troisième lettre est A et ne finissant pas par S.
SELECT ename FROM emp WHERE ename LIKE '__A%' MINUS SELECT ename FROM emp WHERE ename LIKE '%S';Exemple : afficher les employés dont le nom commence par la troisième lettre est A et ne finissant ni par S ni par K.
SELECT ename FROM emp WHERE ename LIKE '__A%' MINUS SELECT ename FROM emp WHERE ename LIKE '%S' MINUS SELECT ename FROM emp WHERE ename LIKE '%K';
ORDER BY
- Par défaut, les résultats sont triés par ordre croissant de la première colonne de la première table.
- Il est possible de spécifier une clause globale ORDER BYcomme dernière instruction.
- Seuls les colonnes de la première table peuvent être utilisés dans le ORDER BY.
- Les requêtes unitaires ne peuvent pas avoir de clause ORDER BY.
SELECT ename, deptno FROM emp WHERE ename LIKE 'A%' UNION SELECT ename, deptno*2 FROM emp WHERE ename LIKE '%S' ORDER BY deptno;ATTENTION
SELECT * FROM emp WHERE ename LIKE 'A%' UNION SELECT * FROM emp WHERE ename LIKE '%S' ORDER BY deptno;n'est pas valide, car SQL ne reconnaît pas
deptno parmi les champs de la première table.