Anda dapat mencapai apa yang Anda inginkan dengan sedikit mengatur ulang kueri Anda. Triknya adalah ISNULL
harus berada di luar sebelum SQL Server akan mengerti bahwa nilai yang dihasilkan tidak akan pernah bisa NULL
.
SELECT ISNULL(CAST(
CASE Status
WHEN 3 THEN 1
ELSE 0
END AS bit), 0) AS HasStatus
FROM dbo.Product
Salah satu alasan saya benar-benar menemukan ini berguna adalah ketika menggunakan ORM dan Anda tidak ingin nilai yang dihasilkan dipetakan ke tipe nullable. Itu bisa membuat segalanya lebih mudah jika aplikasi Anda melihat nilainya tidak mungkin nol. Maka Anda tidak perlu menulis kode untuk menangani pengecualian nol, dll.