ПользуетсяИспользование 'OR' и 'И' в SQL Server
(Condition A or Condition B and Condition C)
такой же, как
(Condition A and Condition C) OR (Condition B and Condition C)
ПользуетсяИспользование 'OR' и 'И' в SQL Server
(Condition A or Condition B and Condition C)
такой же, как
(Condition A and Condition C) OR (Condition B and Condition C)
No. Первое условие:
(Condition A) OR (Condition B and Condition C)
И второе:
(Condition A and Condition C) OR (Condition B and Condition C)
Вы можете четко видеть разницу между ними.
первым предполагает, что
a
илиB and C
это должно соответствоватьвторая предполагает, что
a and c
ИЛИb and c
являются должны соответствовать
(А) или (В и С) *IS NOT*
(A и C) или (B и C)
надеюсь, что это будет больше.
Я действительно не понимаю, почему вы говорите, что первое условие - '(A или B) и (C)'. «И» имеет более высокий приоритет, поэтому первое условие, как написано, - «A или (B и C)» – Lamak
. Ваше право, я сделал это немного, чтобы быстро поблагодарить за улов. –
Помимо того, что это неправильно, неправильно. Составьте таблицу истинности для '(A или B) и C' и для' (A и C) или (B и C) ', и вы увидите, что они логически эквивалентны. – Michelle
Коренная проблема заключается в том, что вы должны включать в себя парнеры при смешивании операторов. Поскольку and
имеет преимущество, как написано, вы просите ли
(A or (B and C))
эквивалентно
((A and C) or (B and C))
... и ответ нет. В случае, когда A, B, and C
равно true, false, and false
, первое условие оценивается как true
, тогда как второе оценивается как false
.
Для того, чтобы сделать их эквивалент, вы можете добавить скобки первое выражение, как это:
((A or B) and C)
В этом случае для каждой комбинации значений для A, B, and C
, он будет оценивать и то же значение, как ((A and C) or (B and C))
,
+1 за то, что нашли время, чтобы на самом деле ** объяснить **, почему они не эквивалентны, я был слишком ленив в своем ответе – Lamak
Почему бы вам не попробовать и не вернуться к нам? – Rushyo
Независимо от ответа, я всегда абсолютно рекомендую вставлять парны при смешивании условий AND и OR на любом языке. Чтение чрезвычайно важно. –
Я жду, когда данные будут перенесены, и я думал о запросе в моей голове. – user2554301