SQL不存在不工作

SQL不存在不工作,sql,Sql,下面的代码似乎无法识别not EXISTS语句后面括号中的代码 select * from department where NOT EXISTS (select * from department where UPPER(state) != 'VIC'); 我花了几个小时在这个问题上,但似乎无法使它工作(可以使用不同的查询,但不能使用上面的查询)。它不工作,因为您的表中至少有一行部门其中上级(州)!='VIC'是正确的 在您的头脑中解决它,首先执行子查询: SELECT * FR

下面的代码似乎无法识别not EXISTS语句后面括号中的代码

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

我花了几个小时在这个问题上,但似乎无法使它工作(可以使用不同的查询,但不能使用上面的查询)。

它不工作,因为您的表中至少有一行
部门
其中
上级(州)!='VIC'
是正确的

在您的头脑中解决它,首先执行子查询:

SELECT *
FROM department
WHERE UPPER(state) != 'VIC'
如果返回任何内容,则外部查询如下所示:

SELECT *
FROM department
WHERE NOT TRUE;
这意味着它不会返回任何东西

现在我要问你的问题是:你想让它做什么

我怀疑根本没有理由使用子查询。我建议这是一个可能的替代方案:

SELECT *
FROM department
WHERE UPPER(state) = 'VIC'

但由于我不知道您真正想要的最终结果是什么,我不知道这是否合适。

为什么要使用两个查询?相反,你可以试试看

select * from department where UPPER(state) <> 'VIC'
从上级(州)“VIC”所在的部门中选择*

你想要什么结果?为什么不直接从上级(州)所在的部门选择*!='VIC’?嗨,Flimzy,我需要使用不存在的东西-我已经能够让它按照你建议的方式工作了。我正在尝试显示包含“VIC”的所有行。为什么您认为需要使用“NOT EXISTS”?如果您只需要包含VIC的行,为什么不直接查找它呢<代码>其中上限(状态)=“VIC”。对于uni,我需要证明我可以使用它,但根本无法使它工作。它只是我被卡住的一部分,无法通过-所有子查询似乎都没有返回anything@user2967555:那么你需要提供更多的信息。比如,确切地说,你期望得到什么样的输出,以及你得到了什么,等等。我们无法读懂你的心思。