SQL NOT EXISTS不起作用

时间:2013-11-08 04:28:59

标签: sql

以下代码似乎无法识别NOT EXISTS语句后括号中的代码。

select *
from department
where
NOT  EXISTS 
(select *
from department    
where UPPER(state) != 'VIC');

我花了好几个小时才开始工作(似乎可以使用不同的查询但不能使用上面的查询)。

2 个答案:

答案 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'