Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como fazer uma coluna de exibição NÃO NULA


Você pode conseguir o que deseja reorganizando um pouco sua consulta. O truque é que o ISNULL tem que estar do lado de fora antes que o SQL Server entenda que o valor resultante nunca pode ser NULL .
SELECT ISNULL(CAST(
    CASE Status
        WHEN 3 THEN 1  
        ELSE 0  
    END AS bit), 0) AS HasStatus  
FROM dbo.Product  

Uma razão pela qual acho isso útil é ao usar um ORM e você não deseja que o valor resultante seja mapeado para um tipo anulável. Isso pode tornar as coisas mais fáceis se seu aplicativo vir o valor como nunca possivelmente nulo. Então você não precisa escrever código para lidar com exceções nulas, etc.