我正在尝试在Oracle 10.1.0.2.0中使用EXCEPT关键字,但不断收到错误“未知命令”。我试过谷歌搜索,有人说关键字是MINUS,所以我使用MINUS,但我仍然有同样的错误。 任何的想法? 感谢。
所以这是我的查询。 我找到了参加所有课程的学生的名字,课程编号> 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
);
答案 0 :(得分:19)
Oracle MINUS
是一个运营商;它相当于SQL Server中的EXCEPT
。 Here is a previous post解释了这些差异。这是一个简单的例子:
SELECT a, b, c
FROM table_a
MINUS
SELECT a, b, c
FROM table_b
如果您仍有问题,请将您正在使用的完整查询添加到您的问题中;这可能是一个简单的语法错误。
答案 1 :(得分:0)
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;