You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何一次性排除Type='B'、ID=1或Color='red'的记录?

问题分析与解决方案

你的问题出在逻辑运算符的使用上:你想排除所有满足「Type='B' 或 ID=1 或 Color='red'」的记录,但你写的Where Type <> 'B' OR ID <> 1 OR Color <> 'red'会保留几乎所有记录——只要任意一个条件不满足(比如某条记录Type='B'但ID≠1,它会因为ID<>1被保留),这和你的预期完全相反。

正确的SQL写法有两种:

写法1:直接取反

用NOT包裹你要排除的条件组合:

WHERE NOT (Type = 'B' OR ID = 1 OR Color = 'red')

写法2:德摩根定律转换

根据逻辑运算的德摩根定律,NOT (A OR B OR C)等价于NOT A AND NOT B AND NOT C,所以也可以写成:

WHERE Type <> 'B' AND ID <> 1 AND Color <> 'red'

这两种写法都能一次性过滤掉所有符合「Type='B'、ID=1或Color='red'」的记录,得到你想要的预期结果。

内容的提问来源于stack exchange,提问作者corydon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:20:58