Oracle - EXCEPT错误

use*_*411 2 oracle select except

有几列和表,如下:

注意:使用的元素名称仅用于说明目的.

SELECT T.col1 
FROM Table1 T 
WHERE NOT EXISTS (
   (SELECT * FROM Table2) 
     EXCEPT (SELECT TT.col1 
             FROM TableTT TT 
             WHERE TT.col2 = T.col2)
     );
Run Code Online (Sandbox Code Playgroud)

错误:缺少右括号,但括号似乎匹配.

但是,我确实知道它实际上与括号无关.我怀疑错误是在EXCEPT子句中的某个地方.可能导致错误的原因是什么?

Ser*_*sev 7

EXCEPTOracle中没有运营商.请MINUS改用.参考:这里

在您的查询中,"EXCEPT"一词最有可能被视为(SELECT * FROM Table2)子查询的表别名.

更新:

对提供的数据结构的完整查询将如下所示:

SELECT T.col1 
FROM Table1 T 
WHERE NOT EXISTS 
((SELECT col1 FROM Table2) 
MINUS 
(SELECT TT.col1 FROM TableTT TT WHERE TT.col2 = T.col2));
Run Code Online (Sandbox Code Playgroud)

请注意,我已更改*col1for Table2- 如果您从那时选择单个INT列TT.col1,TT则还应从中选择单个INT列Table2.