SQL | Operátor MINUS
Operátor MINUS se používá se dvěma SELECT příkazy vrátit pouze ty řádky z prvního dotazu, které nejsou přítomny ve druhém. Odfiltruje všechny běžné řádky a zachová pouze jedinečné řádky z první sady výsledků.
Obrazové znázornění :
Jak můžete vidět na výše uvedeném diagramu, operátor MINUS vrátí pouze ty řádky, které jsou přítomny ve výsledkové sadě z tabulky 1 a nejsou přítomny v sadě výsledků z tabulky 2.
Syntax:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];Ve výše uvedené syntaxi
- První VÝBĚR: Načte zadané sloupce (sloupec1 sloupec2 ... sloupecN) z názvu_tabulky1 volitelně filtrovaného podle podmínky WHERE.
- MÍNUS: Operátor MINUS vrací řádky z prvního dotazu, které nejsou přítomny ve druhém dotazu.
- Druhý VÝBĚR: Načte stejné sloupce z tabulky název_tabulky2 volitelně filtrované podle podmínky WHERE.
- výstup: Výsledek obsahuje řádky z název_tabulky1, které v poli název_tabulky2 neexistují. Z konečného výstupu jsou odstraněny duplikáty.
Tabulky :
Tabulka 1
| Jméno | Adresa | Stáří | Stupeň |
|---|---|---|---|
| Drsné | Dillí | 20 | A |
| Gaurav | jaipur | 21 | B |
| Praxe | mumbai | 21 | A |
| Dhanraj | kolkata | 22 | B |
Tabulka 2
| Jméno | Stáří | Telefon | Stupeň |
|---|---|---|---|
| Akáša | 20 | XXXXXXXXXX | A |
| Dheeraj | 21 | XXXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXXX | A |
| Dhanraj | 22 | XXXXXXXXXX | B |
Dotazy :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
výstup:
| Jméno | Stáří | Stupeň |
|---|---|---|
| Drsné | 20 | A |
| Gaurav | 21 | B |
| Praxe | 21 | A |
V tomto dotazu:
- Vrátí pouze řádky, které jsou jedinečné pro Tabulka1.
- Pokud je poslední řádek v obou tabulkách stejný, je z výsledku vyloučen. Proto budou vráceny pouze první tři řádky z tabulky1.
Vytvořit kvízPoznámka :
- Operátor MINUS je podporován v Oracle, ale není podporován v SQL Server nebo PostgreSQL.
- Pro tyto databáze použijte
EXCEPToperátora jako alternativu.