Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment rendre une colonne de vue NOT NULL

Vous pouvez obtenir ce que vous voulez en réorganisant un peu votre requête. L'astuce est que le ISNULL doit être à l'extérieur avant que SQL Server comprenne que la valeur résultante ne peut jamais être NULL .

SELECT ISNULL(CAST(
    CASE Status
        WHEN 3 THEN 1  
        ELSE 0  
    END AS bit), 0) AS HasStatus  
FROM dbo.Product  

Une des raisons pour lesquelles je trouve cela utile est lorsque j'utilise un ORM et vous ne voulez pas que la valeur résultante soit mappée à un type nullable. Cela peut faciliter les choses tout autour si votre application voit la valeur comme n'étant jamais nulle. Ensuite, vous n'avez pas à écrire de code pour gérer les exceptions nulles, etc.