U kunt bereiken wat u wilt door uw vraag een beetje te herschikken. De truc is dat de ISNULL
moet aan de buitenkant zijn voordat SQL Server begrijpt dat de resulterende waarde nooit NULL
kan zijn .
SELECT ISNULL(CAST(
CASE Status
WHEN 3 THEN 1
ELSE 0
END AS bit), 0) AS HasStatus
FROM dbo.Product
Een reden waarom ik dit eigenlijk handig vind, is bij het gebruik van een ORM en u wilt niet dat de resulterende waarde wordt toegewezen aan een nullable-type. Het kan dingen overal gemakkelijker maken als uw toepassing de waarde als nooit mogelijk null beschouwt. Dan hoef je geen code te schrijven om null-uitzonderingen, enz. af te handelen.