В SQL нет логического типа данных, BIT
является своего рода хаком, но основная проблема в том, что из-за концепции SQL NULL
true логическая логика невозможна (например, что бы ваш запрос вернул, если бы price
было NULL
?)
Обратите внимание, что я не говорю, что не существует возможных способов реализации логической логики, которые "в основном" работают (например, вы могли бы сказать, что TRUE OR NULL
- это NULL
или что-то еще) что люди, разработавшие стандарт SQL, не могли принять решение об Едином истинном представлении для логической логики (например, вы также можете утверждать, что TRUE OR NULL
- это TRUE
, поскольку TRUE OR <anything>
- это TRUE
).
Логические выражения (=, <=,> = и т. Д.) Действительны только в определенных местах (в частности, в WHERE
предложениях и CASE
метках), но не в других местах.