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