Puoi ottenere ciò che desideri riorganizzando un po' la tua query. Il trucco è che ISNULL
deve essere all'esterno prima che SQL Server capisca che il valore risultante non può mai essere NULL
.
SELECT ISNULL(CAST(
CASE Status
WHEN 3 THEN 1
ELSE 0
END AS bit), 0) AS HasStatus
FROM dbo.Product
Uno dei motivi per cui lo trovo utile è quando utilizzo un ORM e non vuoi che il valore risultante venga mappato su un tipo nullable. Può rendere le cose più facili se la tua applicazione vede il valore come non essere mai nullo. Quindi non devi scrivere codice per gestire eccezioni nulle, ecc.