SQL | Operátor MINUS

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í :

sql-minus

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.

Poznámka :

  • Operátor MINUS je podporován v Oracle, ale není podporován v SQL Server nebo PostgreSQL.
  • Pro tyto databáze použijte EXCEPT operátora jako alternativu.
Vytvořit kvíz