2013-10-15 64 views
1

这是我的查询甲骨文缺少括号错误

SELECT S.sid, 
      S.sname, 
      M.major 
FROM Student S, 
    Major M 
    WHERE NOT EXISTS(
       (SELECT C.cno 
       FROM Courses C 
       WHERE S.sid = M.sid 
        AND M.dname = C.dname) EXCEPT 
       (SELECT E.cno 
       FROM Enroll E 
       WHERE S.sid = M.sid 
        AND S.sid = E.sid 
        AND M.dname=E.dname)) 

为什么我收到一个无效的SQL:ORA-00907:缺少右括号的错误,当他们排队?

+1

'EXCEPT'的意义吗?如果我猜对的话,你可以使用'MINUS'子句 – ajmalmhd04

回答

3

EXCEPT是Oracle MINUS的SQLServer的条款,用于相同: 试试这个:

SELECT S.sid, 
    S.sname, 
    M.major 
FROM Student S, 
    Major M 
WHERE NOT EXISTS(
    (SELECT C.cno FROM Courses C WHERE S.sid = M.sid AND M.dname = C.dname 
    ) 
MINUS 
    (SELECT E.cno 
    FROM Enroll E 
    WHERE S.sid = M.sid 
     AND s.sid = e.sid 
     and m.dname=e.dname 
    ));