Partie I
SQL de base
118
© Éditions Eyrolles
Ce principe se généralise à la différence entre n ensembles par imbrication de n requêtes (dans
le bon ordre).
La directive NOT IN doit être utilisée avec prudence car elle retourne faux si un membre
ramené par la sous-interrogation est NULL.
Ordonner les résultats
Le résultat d’une requête contenant des opérateurs ensemblistes est trié, par défaut, par ordre
croissant, sauf avec l’opérateur UNION ALL.
La clause ORDER BY n’est utilisable qu’une fois en fin d’une requête incluant des opérateurs
ensemblistes. Cette clause accepte le nom des colonnes de la première requête ou la position
de ces colonnes.
Le tableau suivant présente trois écritures différentes de la même requête ensembliste contenant une clause ORDER BY. Le besoin est de connaître tous les types d’avions que les deux
compagnies exploitent (classement par ordre décroissant).
Notez que la troisième requête produit le même résultat en faisant intervenir un SELECT
(aliasé) dans le FROM. Ce mécanisme permet de construire dynamiquement la table à interroger.
Tableau 4-31 Exemples avec la clause ORDER BY
Technique
Requête
Nom de la colonne.
SELECT typeAvion FROM AvionsdeAF
UNION
SELECT typeAv FROM AvionsdeSING
;
Position de la colonne.
…
;
SELECT dans le FROM.
SELECT T.typeAvion FROM
T
ORDER BY T.typeAvion DESC;
+-----------+
| typeAvion |
+-----------+
| Concorde |
| A340
|
| A330
|
| A320
|
+-----------+
Web
ORDER BY typeAvion DESC
ORDER BY 1 DESC
(SELECT typeAvion FROM AvionsdeAF UNION
SELECT typeAv FROM AvionsdeSING)
Précédent

- 140/418

Suivant