Du kan uppnå vad du vill genom att ordna om din fråga lite. Tricket är att ISNULL
måste vara på utsidan innan SQL Server kommer att förstå att det resulterande värdet aldrig kan vara NULL
.
SELECT ISNULL(CAST(
CASE Status
WHEN 3 THEN 1
ELSE 0
END AS bit), 0) AS HasStatus
FROM dbo.Product
En anledning till att jag faktiskt tycker att detta är användbart är när jag använder en ORM och du vill inte att det resulterande värdet mappas till en nollbar typ. Det kan göra saker och ting enklare runt om om din applikation ser att värdet aldrig är null. Då behöver du inte skriva kod för att hantera null-undantag etc.