Почему я не могу использовать битовое поле в качестве логического выражения в операторе case SQL ?

Я хочу выбрать что-то условно в зависимости от того, является ли битовое поле истинным или ложным. Это был синтаксис, который я изначально пробовал:

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

11
задан froadie 2 December 2010 в 13:49
поделиться