Я хочу выбрать что-то условно в зависимости от того, является ли битовое поле истинным или ложным. Это был синтаксис, который я первоначально попробовал:
CASE WHEN isSoon THEN 'Soon' ELSE 'Not so soon' END As HowSoon
Это имеет смысл для меня, так как то, что следует за "КОГДА", должно быть логическим выражением, которое isSoon
является битовым полем. Однако это не сработало. В итоге я должен был сделать:
CASE WHEN isSoon = 1 THEN 'Soon' ELSE 'Not so soon' END As HowSoon
Мне кажется, что это излишне ... Это похоже на написание if(isSoon == True)
на языке программирования вместо более интуитивного if(isSoon)
и идет вразрез. Почему SQL настроен так? Это потому что битовые поля на самом деле не булевы?