如何使用 WHERE 编写具有两个条件的查询

How to write a query with WHERE with two conditions

现在我有:

WHERE flag_1 NOT IN ("D") AND flag_2 NOT IN ("D")

我有两组人处理相同的数据,一旦一组完成,他们将 "flag" 它 D,但报告仍需要提取信息,直到两者都完成已标记 D.

现在,如果其中一个被标记 D,报告将排除数据,但我只希望在两个方面都完成并被标记后排除它 D

有指导吗?

I only want it excluded once both aspects are completed and flagged "D".

这将翻译为:

WHERE NOT (flag_1 = 'D' AND flag_2 = 'D')

注意:我看不到 IN 运算符在列表中只有一个值的意义,所以我改为简单的 =.

或者您可以将其翻译成 WHERE flag_1 <> 'D' AND flag_2 <> 'D'。如果要轻松测试表达式是否与值列表中的任何值匹配,可以使用 SQL IN 条件(有时称为 IN 运算符)。在您的情况下,您只有一个值可以评估。

NOT是否定,<> (not equal to)是比较运算符,都是ISO标准。并且没有性能差异。

WHERE flag_1 <> 'D' OR flag_2 <> 'D'

如果您希望报告继续拉取记录,直到两个标志都位于 'D',检查不等于 'D' 的标志会将它们拉入集合。