В SQL EXCEPT возвращает те кортежи, которые возвращаются первой операцией SELECT, а не возвращаются второй операцией SELECT.
Это то же самое, что использование оператора вычитания в реляционной алгебре.
Пример:
Скажем, у нас два отношения: студенты и ТА (ассистент преподавателя). Мы хотим вернуть всех тех студентов, которые не являются ассистентами. Запрос может быть сформулирован как:
Стол студентов
StudentID | Name | Course |
---|---|---|
1 | Rohan | DBMS |
2 | Kevin | OS |
3 | Mansi | DBMS |
4 | Mansi | ADA |
5 | Rekha | ADA |
6 | Megha | OS |
StudentID | Name | Course |
---|---|---|
1 | Kevin | TOC |
2 | Sita | IP |
3 | Manik | AP |
4 | Rekha | SNS |
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 | ИСПОЛЬЗОВАНИЕ
- SQL | ГДЕ оговорка
- SQL | С предложением
- SQL | ПОЛОЖЕНИЕ
- SQL | С галстуками
- PHP | MySQL WHERE Clause
- SQL | ВЫБЕРИТЕ ТОП
- SQL | Союзный пункт
- SQL | Отличительная оговорка
- SQL | Подзапросы в предложении From
- SQL | ОГРАНИЧЕНИЕ
- SQL | Пересечь и исключить оговорку
- SQL | Пункт OFFSET-FETCH
- PHP | MySQL LIMIT Clause
- PHP | MySQL ORDER BY Clause
0.00 (0%) 0 votes