Я пытаюсь создать представление, где я хочу, чтобы столбец был только true или false. Однако, кажется, что независимо от того, что я делаю, 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
. Но он никогда не должен быть NULL. Есть ли какой-то волшебный трюк SQL, который я могу использовать, чтобы заставить этот столбец быть NOT NULL
.
Обратите внимание, что если я удаляю CAST()
вокруг CASE
, столбец правильно устанавливается как NOT NULL
, но тогда тип столбца устанавливается на INT
, что не то, что я хочу. Я хочу, чтобы это было BIT
.: -)