这是我的问题:
SELECT s.sname,
s.deptid
FROM student s
WHERE NOT EXISTS ((SELECT *
FROM class c)
EXCEPT
(SELECT c1.room
FROM class c1,
enrolled e
WHERE s.snum = e.snum
AND e.cname LIKE c1.cname))
GROUP BY s.sname,
s.deptid;
我的错误是
EXCEPT
*
ERROR at line 5:
ORA-00907: missing right parenthesis
不确定为什么我似乎有适量的左右括号。我已经尝试将所有内容移动到不存在的行但是得到相同的错误。
答案 0 :(得分:3)
由于您已标记此sqlplus
,我假设您使用的是Oracle。 Oracle中不存在EXCEPT
关键字;等价物是MINUS
。我认为在这种情况下,解析器将EXCEPT
视为其前面的子查询的别名,然后期望关闭括号表达式。
尝试用EXCEPT
替换MINUS
,看看你得到了什么结果。可能还有其他语法错误,嵌套有点难以理解。