如何基于条件排除结果集中的指定记录?(以FOO表为例)
如何筛选FOO表并排除指定记录
嘿,这个需求处理起来很简单,咱们直接看可行的SQL写法就行。你的目标是保留FOO表中所有记录,只排除Org = 'Y'且Status = 'CLOSED'的那一行,这里有两种等价的写法供你选择:
方法一:直观的NOT条件包裹
这种写法最容易理解,直接把要排除的条件用NOT包裹起来:
SELECT Org, Status FROM FOO WHERE NOT (Org = 'Y' AND Status = 'CLOSED');
方法二:逻辑拆分的等价写法
根据逻辑运算的德摩根定律,上面的条件可以拆成下面这种形式,执行结果完全一致,你可以根据自己的习惯选用:
SELECT Org, Status FROM FOO WHERE Org != 'Y' OR Status != 'CLOSED';
结果验证
先看原始的FOO表数据:
| Org | Status |
|---|---|
| X | CLOSED |
| X | OPEN |
| Y | OPEN |
| Y | CLOSED |
执行任意一段SQL后,都会得到你期望的结果集:
| Org | Status |
|---|---|
| X | CLOSED |
| X | OPEN |
| Y | OPEN |
内容的提问来源于stack exchange,提问作者SnowmanXL
相关产品推荐
相关产品推荐

