Du kan opnå det, du ønsker, ved at omarrangere din forespørgsel lidt. Tricket er, at ISNULL
skal være på ydersiden, før SQL Server vil forstå, at den resulterende værdi aldrig kan være NULL
.
SELECT ISNULL(CAST(
CASE Status
WHEN 3 THEN 1
ELSE 0
END AS bit), 0) AS HasStatus
FROM dbo.Product
En grund til, at jeg faktisk finder dette nyttigt, er, når jeg bruger en ORM og du vil ikke have den resulterende værdi knyttet til en nullbar type. Det kan gøre tingene lettere hele vejen rundt, hvis din applikation ser, at værdien aldrig er nul. Så behøver du ikke skrive kode for at håndtere nul-undtagelser osv.