Not exists operator error on multiple tables 选择
Not exists operator error on multiple tables selection
此选择在 NOT IN 时效果很好,但在 NOT EXISTS 时 returns 出错:
SQL 错误:ORA-00920:无效的关系运算符
00920.00000 - "invalid relational operator"
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)
;
您的语法有误,很容易找出原因。请注意,where not exists
子句用于从另一组数据中减去一组数据:
select
ename
from
emp
where NOT EXISTS
(select
null
from
dependents
where
emp.empno = dependents.empno
and ...
);
但是您试图将它与基本查询中的特定字段相关联,这是错误的,它与 NOT IN 不完全相同,后者将列中的数据与子查询结果进行比较。
不要试图互相替换。
此选择在 NOT IN 时效果很好,但在 NOT EXISTS 时 returns 出错: SQL 错误:ORA-00920:无效的关系运算符 00920.00000 - "invalid relational operator"
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)
;
您的语法有误,很容易找出原因。请注意,where not exists
子句用于从另一组数据中减去一组数据:
select
ename
from
emp
where NOT EXISTS
(select
null
from
dependents
where
emp.empno = dependents.empno
and ...
);
但是您试图将它与基本查询中的特定字段相关联,这是错误的,它与 NOT IN 不完全相同,后者将列中的数据与子查询结果进行比较。
不要试图互相替换。