SQL查询-在两个条件下

时间:2019-03-13 23:56:53

标签: sql sequel viewpoint

现在我有:

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

我有两组人在处理相同的数据,完成一组工作后,他们会“标记” D,但是报告仍需要将信息提取到两者 strong>被标记为D

现在,如果 被标记为D,该报告将排除数据,但我只希望在两个方面均已完成并标记为{{ 1}}。

有指导吗?

3 个答案:

答案 0 :(得分:5)

  

我只希望在两个方面都完成并标记为“ D”后将其排除。

这将翻译为:

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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