SQL | Opérateur MOINS

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 :

sql-moins

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.

Note :

  • 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 EXCEPT opérateur comme alternative.
Créer un quiz