SQL | Оператор МИНУС

SQL | Оператор МИНУС

Операторът MINUS се използва с две SELECT изрази за връщане само на тези редове от първата заявка, които не присъстват във втората. Той филтрира всички общи редове и запазва само уникалните редове от първия набор от резултати.

Изобразително представяне :

sql-минус

Както можете да видите, в горната диаграма операторът MINUS ще върне само тези редове, които присъстват в набора от резултати от Table1 и не присъстват в набора от резултати от Table2.

Синтаксис:

 SELECT column1 column2 ... columnN   
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];

В горния синтаксис

  • Първо ИЗБЕРЕТЕ: Извлича определени колони (колона1 колона2 ... колонаN) от име_на_таблица1, по избор филтрирани от условие WHERE.
  • МИНУС: Операторът MINUS връща редове от първата заявка, които не присъстват във втората заявка.
  • Втори ИЗБОР: Извлича същите колони от table_name2, филтрирани по избор от условие WHERE.
  • Изход: Резултатът включва редове от table_name1, които не съществуват в table_name2. Дубликатите се премахват от крайния резултат.

Маси :

Таблица 1

Име

Адрес

Възраст

Степен

Сурова

Делхи

20

А

Гаурав

Джайпур

21

б

Практикувайте

Мумбай

21

А

Дханрадж

Колката

22

б

Таблица 2

Име

Възраст

Телефон

Степен

Акаш

20

XXXXXXXXX

А

Дирадж

21

XXXXXXXXX

б

Вайбхав

21

XXXXXXXXX

А

Дханрадж

22

XXXXXXXXX

б

Запитвания :

 SELECT NAME AGE GRADE   
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;

Изход:

Име

Възраст

Степен

Сурова

20

А

Гаурав

21

б

Практикувайте

21

А

В тази заявка:

  • Връща само редовете, които са уникални за Table1.
  • Ако последният ред в двете таблици е един и същ, той се изключва от резултата. Така ще бъдат върнати само първите три реда от Table1.

Забележка :

  • Операторът MINUS се поддържа в Oracle, но не се поддържа в SQL Server или PostgreSQL.
  • За тези бази данни използвайте EXCEPT оператор като алтернатива.
Създаване на тест