使用<>运算符与AND逻辑组合执行SELECT查询时无结果返回的技术咨询
为什么你的SQL查询没有返回结果?
嘿,这问题其实很好解释,咱们一步步拆解来看:
首先先看你执行的完整SQL语句:
SELECT '999' as A, '999' AS B, '000' AS C, '000' as D WHERE A <> '999' and B <> '999' and C <> '999' AND D <> '999'
核心矛盾点
你在SELECT里定义的列值很明确:
- A = '999'
- B = '999'
- C = '000'
- D = '000'
而你的WHERE子句用了AND逻辑,要求所有条件必须同时成立:
A <> '999'→ 这显然是false(因为A本身就是'999')B <> '999'→ 同样是false
AND逻辑的规则是:只要有一个条件为false,整个条件表达式的结果就会是false。所以不管C和D的条件是否成立,整个WHERE子句的结果都是不满足的,自然不会有任何行返回。
额外小提示
如果你是想筛选出**任意一列不等于'999'**的行,那应该把AND改成OR;如果确实要所有列都不等于'999',那你当前的样本数据(A和B是'999')本身就不符合条件,没有结果是完全正常的。
内容的提问来源于stack exchange,提问作者Disis Ssss
相关产品推荐
相关产品推荐

