Какое условие фильтра тождественно ложно (никогда не выполнится) для флага is_paying, который принимает только 0 или 1?

Ais_paying = 1 OR is_paying = 0
BNOT (is_paying = 1) OR is_paying = 1
Cis_paying = 1 OR NOT (is_paying = 0)
Dis_paying = 1 AND is_paying = 0
Правильный ответ. Условие is_paying = 1 AND is_paying = 0 — противоречие: флаг не может одновременно равняться двум значениям.

Разбор

Флаг не может одновременно равняться 1 и 0, поэтому условие is_paying = 1 AND is_paying = 0 никогда не выполнится — это противоречие. Такие условия иногда появляются при неверной склейке фильтров через AND или при попытке одновременно потребовать два взаимоисключающих сегмента. Распознавание тождественно ложных условий помогает понять, почему запрос возвращает пустой результат, и быстро найти ошибку логики. Противоположный случай — is_paying = 1 OR is_paying = 0 — наоборот, тождественно истинно для любой определённой строки.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Открыть Карьерник в браузере

Ещё вопросы по теме «Булева логика и фильтры»