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

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

Оператор МІНУС використовується з двома SELECT оператори для повернення лише тих рядків із першого запиту, яких немає в другому. Він відфільтровує всі загальні рядки та зберігає лише унікальні рядки з першого набору результатів.

Образне уявлення :

sql-мінус

Як ви бачите, на наведеній вище схемі оператор МІНУС поверне лише ті рядки, які присутні в наборі результатів з Таблиці1 і відсутні в наборі результатів з Таблиці2.

Синтаксис:

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

У наведеному вище синтаксисі

  • Перший ВИБІР: Отримує вказані стовпці (стовпець1 стовпець2 ... стовпецьN) із table_name1, необов’язково відфільтрований за умовою WHERE.
  • МІНУС: Оператор MINUS повертає рядки з першого запиту, яких немає в другому запиті.
  • Другий SELECT: Отримує ті самі стовпці з 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.
  • Якщо останній рядок в обох таблицях збігається, він виключається з результату. Таким чином, буде повернено лише перші три рядки з таблиці 1.

Примітка :

  • Оператор MINUS підтримується в Oracle, але не підтримується в SQL Server або PostgreSQL.
  • Для цих баз даних використовуйте EXCEPT оператор як альтернатива.
Створіть вікторину