Sto cercando di creare una vista in cui voglio che una colonna sia solo vera o falsa. Tuttavia, sembra che non importa quello che faccio, SQL Server (2008) crede che la mia colonna di bit possa in qualche modo essere nulla.
Ho una tabella chiamata "Prodotto" con la colonna "Stato" che è INT, NULL
. In una vista, voglio restituire una riga per ogni riga in Product, con una colonna BIT impostata su true se la colonna Product.Status è uguale a 3, altrimenti il campo bit dovrebbe essere falso.
SQL di esempio
SELECT CAST( CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Se salvo questa query come vista e guardo le colonne in Esplora oggetti, la colonna HasStatus è impostata su BIT, NULL
. Ma non dovrebbe mai essere NULL. C'è qualche trucco SQL magico che posso usare per forzare questa colonna NOT NULL
.
Si noti che, se rimuovo CAST()
intorno a CASE
, la colonna è impostata correttamente come NOT NULL
, ma poi il tipo di colonna è impostato su INT
, che non è quello che voglio. Voglio che sia BIT
. :-)