Я намагаюся створити подання, де я хочу, щоб стовпець був лише істинним чи хибним. Однак, здається, незалежно від того, що я роблю, SQL Server (2008) вважає, що мій стовпець бітів якось може бути нульовим.
У мене є таблиця "Товар" із стовпчиком "Статус", який є INT, NULL
. У поданні я хочу повернути рядок для кожного рядка в Product, зі стовпцем BIT, встановленим у true, якщо стовпець Product.Status дорівнює 3, інакше поле біта має бути хибним.
Приклад SQL
SELECT CAST( CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Якщо я зберігаю цей запит як подання та переглядаю стовпці в Провіднику об’єктів, для стовпця HasStatus встановлено значення BIT, NULL
. Але це ніколи не повинно бути НУЛОМ. Чи є якийсь магічний трюк SQL, який я можу використати, щоб змусити цей стовпець бути NOT NULL
.
Зверніть увагу, що якщо я видалю CAST()
навколо CASE
, стовпець правильно встановлений як NOT NULL
, але тоді для типу стовпця встановлено значення INT
, що не є тим, що я хочу. Я хочу, щоб це було BIT
. :-)