SQL | Opérateur MOINS
L'opérateur MOINS est utilisé avec deux SELECT instructions pour renvoyer uniquement les lignes de la première requête qui ne sont pas présentes dans la seconde. Il filtre toutes les lignes communes et conserve uniquement les lignes uniques du premier jeu de résultats.
Représentation picturale :
Comme vous pouvez le voir dans le diagramme ci-dessus, l'opérateur MOINS renverra uniquement les lignes présentes dans le jeu de résultats du tableau 1 et non présentes dans le jeu de résultats du tableau 2.
Syntaxe:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];Dans la syntaxe ci-dessus
- Premier SÉLECTION : Récupère les colonnes spécifiées (colonne1 colonne2 ... colonneN) de nom_table1 éventuellement filtrées par une condition WHERE.
- MOINS: L'opérateur MOINS renvoie les lignes de la première requête qui ne sont pas présentes dans la deuxième requête.
- Deuxième SELECT : Récupère les mêmes colonnes de table_name2 éventuellement filtrées par une condition WHERE.
- Sortir: Le résultat inclut des lignes de nom_table1 qui n'existent pas dans nom_table2. Les doublons sont supprimés de la sortie finale.
Tableaux :
Tableau 1
| Nom | Adresse | Âge | Grade |
|---|---|---|---|
| Rude | Delhi | 20 | UN |
| Gaurav | Jaïpur | 21 | B |
| Pratique | Bombay | 21 | UN |
| Dhanraj | Calcutta | 22 | B |
Tableau 2
| Nom | Âge | Téléphone | Grade |
|---|---|---|---|
| Akash | 20 | XXXXXXXXX | UN |
| Dheeraj | 21 | XXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXX | UN |
| Dhanraj | 22 | XXXXXXXXX | B |
Requêtes :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
Sortir:
| Nom | Âge | Grade |
|---|---|---|
| Rude | 20 | UN |
| Gaurav | 21 | B |
| Pratique | 21 | UN |
Dans cette requête :
- Renvoie uniquement les lignes uniques au Tableau1.
- Si la dernière ligne des deux tableaux est la même, elle est exclue du résultat. Ainsi, seules les trois premières lignes du tableau 1 seront renvoyées.
Créer un quizNote :
- L'opérateur MOINS est pris en charge dans Oracle mais n'est pas pris en charge dans SQL Server ou PostgreSQL.
- Pour ces bases de données, utilisez le
EXCEPTopérateur comme alternative.