Ключевое слово EXCEPT в Oracle
Я пытаюсь использовать ключевое слово EXCEPT в Oracle 10.1.0.2.0, но все время получал ошибку "Неизвестная команда". Я пробовал погулять, и кто-то сказал, что ключевое слово MINUS, поэтому вместо этого я использовал MINUS, но у меня все еще была такая же ошибка.
Есть идеи?
Спасибо.
Итак, вот мой запрос.
Я нахожу имя студентов, которые зачисляются на ВСЕ курсы с номером курсa > 500
SELECT s.name
FROM Students s
WHERE NOT EXISTS
(
SELECT c.id
FROM Courses c
WHERE c.number > 500
MINUS
SELECT e.course_id
FROM Enrollment e
WHERE e.student_id = s.id
);
Ответы
Ответ 1
Oracle MINUS
- оператор; это эквивалентно EXCEPT
в SQL Server. Вот предыдущее сообщение, объясняющее разницу. Здесь тривиальный пример:
SELECT a, b, c
FROM table_a
MINUS
SELECT a, b, c
FROM table_b
Если у вас все еще есть проблемы, добавьте полный запрос, который вы используете в свой вопрос; это, вероятно, простая синтаксическая ошибка.
Ответ 2
Oracle 20c будет поддерживать EXCEPT/EXCEPT ALL
ключевые слова.
SELECT col1, col2
FROM t1
EXCEPT
SELECT col1, col2
FROM t2;
или EXCEPT ALL
, если вы хотите обрабатывать дубликаты:
SELECT col1, col2
FROM t1
EXCEPT ALL
SELECT col1, col2
FROM t2;