以下代码似乎无法识别NOT EXISTS语句后括号中的代码。
select *
from department
where
NOT EXISTS
(select *
from department
where UPPER(state) != 'VIC');
我花了好几个小时才开始工作(似乎可以使用不同的查询但不能使用上面的查询)。
答案 0 :(得分:1)
它不起作用,因为您的表department
中至少有一行UPPER(state) != 'VIC'
为真。
在脑海中解决问题,首先执行子查询:
SELECT *
FROM department
WHERE UPPER(state) != 'VIC'
如果这返回任何,那么您的外部查询将如下所示:
SELECT *
FROM department
WHERE NOT TRUE;
这意味着它不会返回任何内容。
现在我的后续问题是:你想做什么?
我怀疑没有理由使用子查询。我建议将其作为一种可能的选择:
SELECT *
FROM department
WHERE UPPER(state) = 'VIC'
但由于我不知道你真正想要的最终结果,我不知道这是否合适。
答案 1 :(得分:0)
为什么要使用2个查询?相反,你可以尝试
select * from department where UPPER(state) <> 'VIC'