SQL | MINUS operator
Operator MINUS koristi se s dva SELECT naredbe za vraćanje samo onih redaka iz prvog upita koji nisu prisutni u drugom. Filtrira sve uobičajene retke i zadržava samo jedinstvene retke iz prvog skupa rezultata.
Slikovni prikaz :
Kao što vidite, na gornjem dijagramu operator MINUS vratit će samo one retke koji su prisutni u skupu rezultata iz Tablice1, a nisu prisutni u skupu rezultata Tablice2.
Sintaksa:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];U gornjoj sintaksi
- Prvi SELECT: Dohvaća navedene stupce (stupac1 stupac2 ... stupacN) iz table_name1 opcionalno filtrirane uvjetom WHERE.
- MINUS: Operator MINUS vraća retke iz prvog upita koji nisu prisutni u drugom upitu.
- Drugi SELECT: Dohvaća iste stupce iz table_name2 izborno filtrirane uvjetom WHERE.
- Izlaz: Rezultat uključuje retke iz table_name1 koji ne postoje u table_name2. Duplikati se uklanjaju iz konačnog izlaza.
Stolovi :
Tablica 1
| Ime | Adresa | Dob | Razred |
|---|---|---|---|
| Oštro | Delhi | 20 | A |
| Gaurav | Jaipur | 21 | B |
| Praksa | Mumbai | 21 | A |
| Dhanraj | Kolkata | 22 | B |
Tablica 2
| Ime | Dob | Telefon | Razred |
|---|---|---|---|
| Akaša | 20 | XXXXXXXXX | A |
| Dheeraj | 21 | XXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXX | A |
| Dhanraj | 22 | XXXXXXXXX | B |
Upiti :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
Izlaz:
| Ime | Dob | Razred |
|---|---|---|
| Oštro | 20 | A |
| Gaurav | 21 | B |
| Praksa | 21 | A |
U ovom upitu:
- Vraća samo retke koji su jedinstveni za tablicu1.
- Ako je posljednji redak u obje tablice isti, isključuje se iz rezultata. Stoga će biti vraćena samo prva tri retka iz Tablice 1.
Napravi kvizBilješka :
- Operator MINUS podržan je u Oracleu, ali nije podržan u SQL Serveru ili PostgreSQL-u.
- Za te baze podataka koristite
EXCEPToperater kao alternativa.