SQL | MINUS Operatorze
Operator MINUS jest używany z dwoma SELECT instrukcje zwracające tylko te wiersze z pierwszego zapytania, których nie ma w drugim. Filtruje wszystkie wspólne wiersze i zachowuje tylko unikalne wiersze z pierwszego zestawu wyników.
Reprezentacja obrazkowa :
Jak widać na powyższym diagramie, operator MINUS zwróci tylko te wiersze, które znajdują się w zestawie wyników z Tabeli 1 i nie występują w zestawie wyników z Tabeli 2.
Składnia:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];W powyższej składni
- Najpierw WYBIERZ: Pobiera określone kolumny (kolumna1 kolumna2 ... kolumnaN) z nazwa_tabeli1 opcjonalnie filtrowane według warunku WHERE.
- MINUS: Operator MINUS zwraca wiersze z pierwszego zapytania, których nie ma w drugim zapytaniu.
- Drugi WYBIERZ: Pobiera te same kolumny z nazwa_tabeli2, opcjonalnie filtrowane według warunku WHERE.
- Wyjście: Wynik zawiera wiersze z tabeli nazwa_tabeli1, które nie istnieją w tabeli nazwa_tabeli2. Duplikaty są usuwane z ostatecznego wyniku.
Stoły :
Tabela 1
| Nazwa | Adres | Wiek | Stopień |
|---|---|---|---|
| Szorstki | Delhi | 20 | A |
| Gaurav | Jaipur | 21 | B |
| Praktyka | Bombaj | 21 | A |
| Dhanraj | Kalkuta | 22 | B |
Tabela 2
| Nazwa | Wiek | Telefon | Stopień |
|---|---|---|---|
| Akash | 20 | XXXXXXXXX | A |
| Dheeraj | 21 | XXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXX | A |
| Dhanraj | 22 | XXXXXXXXX | B |
Zapytania :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
Wyjście:
| Nazwa | Wiek | Stopień |
|---|---|---|
| Szorstki | 20 | A |
| Gaurav | 21 | B |
| Praktyka | 21 | A |
W tym zapytaniu:
- Zwraca tylko wiersze, które są unikalne dla tabeli Table1.
- Jeżeli ostatni wiersz w obu tabelach jest taki sam, zostanie on wykluczony z wyniku. Zatem zwrócone zostaną tylko pierwsze trzy wiersze z Tabeli 1.
Utwórz quizNotatka :
- Operator MINUS jest obsługiwany w Oracle, ale nie jest obsługiwany w SQL Server ani PostgreSQL.
- W przypadku tych baz danych użyj metody
EXCEPToperatora jako alternatywa.