T-SQL: les opérations sur les ensembles   

T-SQL offre la possibilité d’appliquer des opérations sur les ensembles de données.
Il existe 3 opérations :

     1.      UNION
L’union permet de rassembler toutes les lignes de plusieurs requêtes ou sous-requêtes.
Exp. Select * from Table1
        UNION
        Select * from Table2
Dans ce cas on obtient un résultat contenant toutes les lignes de données de table1 et 2.

L’opérateur, UNION récupère les lignes de données distinctes des deux tables. En d’autres termes il applique un DISTINCT implicite.
Si on veut récupérer toutes lignes même avec les duplications, on peut utiliser UNION ALL.

Dans ce cas:
        Select DISTINCT * from Table1
        UNION
        Select DISTINCT * from Table2
Et
        Select * from Table1
        UNION ALL
        Select * from Table2

Donnent le même résultat.

      2.      Intersection
Il s’agit de retourner que les lignes partagées entre deux ensembles ou plus.
        Select * from Table1
        INTERSECT
        Select * from Table2
Dans cet exemple, on récupère les lignes qui se trouvent dans la table 1 et 2 au même temps.

     3.      Except
Il permet d’appliquer une différence entre deux ensembles de données. Il récupère des lignes distinctes qui se trouvent dans l’ensemble 1 et pas dans le 2ème.
Exp.
       Select * from Table1
        EXCEPT
        Select * from Table2
Donc, il récupère toutes lignes qui se trouvent dans Table1 et non pas dans la Table2.
L’EXCEPT applique un DISTINCT implicite sur les données.

Evaluation des opérations.
Dans une requête contenant les 3 trois opérateurs, l’évaluation sera faite comme suit.
1. INTERSECT

2. UNION & EXCEPT

Comments

Popular posts from this blog