2013-03-16 66 views
9

我想在Oracle 10.1.0.2.0中使用EXCEPT关键字,但不断收到错误'未知命令'。我试着用google搜索,有人说关键字是MINUS,所以我用了MINUS,但我仍然得到相同的错误。 有什么想法? 谢谢。EXCEPT关键字在Oracle中

所以这里是我的查询。 我发现学生谁在所有的课程,课程数量> 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

你能给我们提供更多关于你想写的查询的信息吗?也许有另一种方法来构建它? – Aiias 2013-03-16 02:50:57

+0

@Aiaias肯定有其他的方式来写它,但我试图使用EXCEPT/MINUS。 – 0x56794E 2013-03-16 02:52:32

回答

16

甲骨文MINUS是操作员录取的名称;它相当于SQL Server中的EXCEPTHere is a previous post解释了区别。这里有一个简单的例子:

SELECT a, b, c 
FROM table_a 
MINUS 
SELECT a, b, c 
FROM table_b 

如果您仍然有问题,请将您正在使用的完整查询添加到您的问题;这可能是一个简单的语法错误。

+0

OOh!我找出了我的查询出了什么问题。实际上没有任何错误,除了sqlplus似乎不喜欢我在MINUS关键字前后放置的空行。 – 0x56794E 2013-03-16 03:52:49

+0

太搞笑了!我自己并没有使用太多的sqlplus,所以这也难倒了我。 – BellevueBob 2013-03-16 04:10:02

+0

伙计们,重复的事情呢?例如:'a','b','b'减去'a','b'我会得到'b'结果吗? – 2016-01-27 13:11:40