Рубрики

SQL | Кроме пункта

В SQL EXCEPT возвращает те кортежи, которые возвращаются первой операцией SELECT, а не возвращаются второй операцией SELECT.

Это то же самое, что использование оператора вычитания в реляционной алгебре.

Пример:
Скажем, у нас два отношения: студенты и ТА (ассистент преподавателя). Мы хотим вернуть всех тех студентов, которые не являются ассистентами. Запрос может быть сформулирован как:

Стол студентов

StudentIDNameCourse
1RohanDBMS
2KevinOS
3MansiDBMS
4MansiADA
5RekhaADA
6MeghaOS

TA Table:

StudentIDNameCourse
1KevinTOC
2SitaIP
3ManikAP
4RekhaSNS

SELECT Name
       FROM Students
EXCEPT
SELECT NAME
       FROM TA;

Выход:

Rohan
Mansi
Megha

Чтобы сохранить дубликаты, мы должны явно написать EXCEPTALL вместо EXCEPT.

SELECT Name
       FROM Students
EXCEPTALL
SELECT Name
       FROM TA;

Выход:

Rohan
Mansi
Mansi
Megha

Разница между исключением, а не в предложении
EXCEPT автоматически удаляет все дубликаты в конечном результате, тогда как NOT IN сохраняет дубликаты кортежей. Также важно отметить, что EXCEPT не поддерживается MySQL.

Эта статья предоставлена Ананней Уберой . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

SQL | Кроме пункта

0.00 (0%) 0 votes