现在我有:
WHERE flag_1 NOT IN ("D") AND flag_2 NOT IN ("D")
我有两组人在处理相同的数据,一旦一组完成,他们就会“标记”它D
,但报告仍然需要提取信息,直到两者都被标记D
。
现在,如果有任何一个被标记D
,报告就会排除数据,但我只希望在两个方面都完成并标记后将其排除D
。
有什么指导吗?
现在我有:
WHERE flag_1 NOT IN ("D") AND flag_2 NOT IN ("D")
我有两组人在处理相同的数据,一旦一组完成,他们就会“标记”它D
,但报告仍然需要提取信息,直到两者都被标记D
。
现在,如果有任何一个被标记D
,报告就会排除数据,但我只希望在两个方面都完成并标记后将其排除D
。
有什么指导吗?
我只希望在两个方面都完成并标记为“D”后将其排除。
这将翻译为:
WHERE NOT (flag_1 = 'D' AND flag_2 = 'D')
注意:我没有看到IN
列表中具有单个值的运算符的意义,所以我改为简单的=
.
WHERE flag_1 <> 'D' OR flag_2 <> 'D'
如果您希望报告继续提取记录,直到两个标志都位于'D'
,检查不相等的标志'D'
会将它们拉入集合中。
或者您可以将其翻译为WHERE flag_1 <> 'D' AND flag_2 <> 'D'
. 如果您想轻松测试表达式是否与值列表中的任何值匹配,则可以使用 SQLIN
条件(有时称为运算符)。IN
在您的情况下,您只有一个值要评估。
NOT
是否定,<> (not equal to)
是比较运算符,它们都是ISO标准。并且没有性能差异。