Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come rendere una colonna di visualizzazione NOT NULL

Puoi ottenere ciò che desideri riorganizzando un po' la tua query. Il trucco è che ISNULL deve essere all'esterno prima che SQL Server capisca che il valore risultante non può mai essere NULL .

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

Uno dei motivi per cui lo trovo utile è quando utilizzo un ORM e non vuoi che il valore risultante venga mappato su un tipo nullable. Può rendere le cose più facili se la tua applicazione vede il valore come non essere mai nullo. Quindi non devi scrivere codice per gestire eccezioni nulle, ecc.