SQL | Operator MINUS

SQL | Operator MINUS

Operatorul MINUS este folosit cu doi SELECT instrucțiuni pentru a returna numai acele rânduri din prima interogare care nu sunt prezente în a doua. Filtrează toate rândurile comune și păstrează numai rândurile unice din primul set de rezultate.

Reprezentare picturală :

sql-minus

După cum puteți vedea în diagrama de mai sus, operatorul MINUS va returna doar acele rânduri care sunt prezente în setul de rezultate din Tabelul 1 și nu sunt prezente în setul de rezultate din Tabelul 2.

Sintaxă:

 SELECT column1 column2 ... columnN   
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];

În sintaxa de mai sus

  • Prima SELECTARE: Preia coloanele specificate (coloana1 coloana2 ... coloanaN) din table_name1, opțional filtrate de o condiție WHERE.
  • MINUS: Operatorul MINUS returnează rânduri de la prima interogare care nu sunt prezente în a doua interogare.
  • A doua SELECTARE: Preia aceleași coloane din table_name2, opțional filtrate de o condiție WHERE.
  • Ieșire: Rezultatul include rânduri din table_name1 care nu există în table_name2. Duplicatele sunt eliminate din rezultatul final.

Mesele :

Tabelul 1

Nume

Adresa

Vârstă

Nota

Aspru

Delhi

20

O

Gaurav

jaipur

21

B

Practica

mumbai

21

O

Dhanraj

kolkata

22

B

Tabelul 2

Nume

Vârstă

Telefon

Nota

Akash

20

XXXXXXXXX

O

Dheeraj

21

XXXXXXXXX

B

Vaibhav

21

XXXXXXXXX

O

Dhanraj

22

XXXXXXXXX

B

Interogări :

 SELECT NAME AGE GRADE   
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;

Ieșire:

Nume

Vârstă

Nota

Aspru

20

O

Gaurav

21

B

Practica

21

O

În această interogare:

  • Returnează numai rândurile care sunt unice pentru Table1.
  • Dacă ultimul rând din ambele tabele este același, acesta este exclus din rezultat. Astfel, numai primele trei rânduri din Tabelul 1 vor fi returnate.

Nota :

  • Operatorul MINUS este acceptat în Oracle, dar nu este acceptat în SQL Server sau PostgreSQL.
  • Pentru acele baze de date utilizați EXCEPT operator ca alternativă.
Creați un test