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ă :
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.
Creați un testNota :
- Operatorul MINUS este acceptat în Oracle, dar nu este acceptat în SQL Server sau PostgreSQL.
- Pentru acele baze de date utilizați
EXCEPToperator ca alternativă.