Я хочу выбрать что-то условно в зависимости от того, является ли битовое поле истинным или ложным. Это был синтаксис, который я изначально пробовал:
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 настроен так? Это потому, что битовые поля не являются действительно логическими?