У меня есть таблица A
, которая имеет 85337
строк (Total)
.T-SQL Multiple Negative, если условия
Затем следующий запрос (Q1)
SELECT *
FROM A
WHERE 1 = 1
AND c1 = 0
AND c2 = 0
AND c3 = 0
AND c4 = 0;
возвращает 590
строки.
Следующий запрос (Q2)
:
SELECT *
FROM A
WHERE 1 = 1
AND c1 != 0
AND c2 != 0
AND c3 != 0
AND c4 != 0;
возвращается: 44245
строки. (Должен вернуть 84747)
- Почему
(Total)
не равен сумме(Q1)
+(Q2)
? - Почему во втором запросе должно быть «
OR
» вместо «AND
», чтобы получить «правильные» значения, когда логика одинакова? Это должно быть тривиально, но не может представить логику.
Почему вы Ожидайте, что Total будет равна количеству Q1 + Q2? Очевидно, что ваши данные не так. –