在WHERE
SQL查询的子句中,我希望这两个条件具有相同的行为:
NOT (a=1 AND b=1)
与
a<>1 AND b<>1
第一个条件的行为符合预期,而我建议第二个条件做相同的事情,但事实并非如此。
这是非常基本的内容,但令人遗憾的是,我看不到自己在做错什么。
您可以发布示例数据,预期结果与实际结果吗?
—
加雷斯·里昂斯
正如Lenard在他的回答中所指出的,这是De Morgan规则的一个示例:不是(A和B)=(不是A)或(不是B),不是(A或B)=(不是A)和(不是B)。注意NULL值。
—
Barranka
只是用英语考虑一下。您的第一个意思是“我既不是法国国王又是人类”。您的第二个词是“我既不是法国国王也不是人类国王”-极为错误。
—
帕特里克·史蒂文斯
这与“德摩根定律”相冲突。等效为
—
Willem Van Onsem
a <> 1 OR b<>1
。