КРОМЕ ключевого слова в Oracle
Я пытаюсь использовать ключевое слово EXCEPT в Oracle 10.1.0.2.0, но получаю сообщение об ошибке "Неизвестная команда". Я попытался поискать в поиске, и кто-то сказал, что ключевое слово - МИНУС, поэтому я использовал МИНУС, но все равно получаю ту же ошибку. Любая идея? Благодарю.
Итак, вот мой запрос. Я нахожу имена студентов, которые записываются на ВСЕ курсы с номером курса> 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 ответ
Оракул MINUS
является оператором; это эквивалентно EXCEPT
в SQL Server. Вот предыдущий пост, объясняющий разницу. Вот тривиальный пример:
SELECT a, b, c
FROM table_a
MINUS
SELECT a, b, c
FROM table_b
Если у вас все еще есть проблемы, добавьте полный запрос, который вы используете, к своему вопросу; это, вероятно, простая синтаксическая ошибка.
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;
Операторы множества объединяют результаты двух компонентных запросов в один результат.
ИСКЛЮЧАЯ все отдельные строки, выбранные первым запросом, но не вторым
ИСКЛЮЧАЯ ВСЕ Все строки, выбранные первым запросом, но не вторым, включая дубликаты