如何在SQL中编写此AND / OR语句?

时间:2017-07-05 17:15:39

标签: sql sql-server-2008 syntax

我有两个字段:qty_releasedqty_complete。我需要同时排除qty_released = 1qty_complete = 0 的行。 我不能这样做:

--rest of code

and j.qty_released != 1
and j.qty_complete != 0

--rest of code

...因为在j.qty_complete = 0 j.qty_released > 1时可能会有有效时间。 j.qty_released = 1的类似情况。我该怎么写呢?我需要查询在过滤特定行时同时考虑这两个问题。

2 个答案:

答案 0 :(得分:2)

试试这个:

where not (qty_released = 1 and qty_complete = 0)

或逻辑等同,但更难阅读恕我直言:

where (qty_released != 1 or qty_complete != 0)

答案 1 :(得分:2)

WHERE/AND (j.qty_released <> 1 OR j.qty_complete > 0)

英文:包括qty_released不是1 的行,如果是1,则qty_complete必须大于0.所以行已过滤out将是符合条件qty_released = 1 AND qty_complete = 0的行。