此选择与NOT IN一起使用时效果很好,但是与NOT EXISTS一起使用时,它返回错误: SQL错误:ORA-00920:无效的关系运算符 00920. 00000-“无效的关系运算符”
NOT EXISTS是否可以通过其他方式工作?
select COMPANY.TITLE_COMPANY
from COMPANY
outer join LOCATION on (LOCATION.NAME_LOC = COMPANY.NAME_LOC)
where COMPANY.NUM_COMPANY not exists (select NUM_COMPANY from COMPANY_SUC)
;
答案 0 :(得分:1)
您的语法是错误的,很容易找出原因。注意where not exists
子句用于从另一组数据中减去一组数据:
select
ename
from
emp
where NOT EXISTS
(select
null
from
dependents
where
emp.empno = dependents.empno
and ...
);
但是您试图将其与基础查询中的特定字段相关联,这是错误的,它与将列中的数据与子查询结果进行比较的NOT IN并不完全相同。
不要试图将其替换。