在SQL中遇到缺少右括号错误

时间:2015-10-16 00:14:12

标签: sql oracle

这是我的问题:

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

不确定为什么我似乎有适量的左右括号。我已经尝试将所有内容移动到不存在的行但是得到相同的错误。

1 个答案:

答案 0 :(得分:3)

由于您已标记此sqlplus,我假设您使用的是Oracle。 Oracle中不存在EXCEPT关键字;等价物是MINUS。我认为在这种情况下,解析器将EXCEPT视为其前面的子查询的别名,然后期望关闭括号表达式。

尝试用EXCEPT替换MINUS,看看你得到了什么结果。可能还有其他语法错误,嵌套有点难以理解。