Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie man eine Ansichtsspalte NICHT NULL macht

Sie können erreichen, was Sie wollen, indem Sie Ihre Abfrage ein wenig umstellen. Der Trick besteht darin, dass der ISNULL muss außen sein, bevor SQL Server versteht, dass der resultierende Wert niemals NULL sein kann .

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

Ein Grund, warum ich das tatsächlich nützlich finde, ist die Verwendung eines ORM und Sie möchten nicht, dass der resultierende Wert einem Nullable-Typ zugeordnet wird. Es kann alles einfacher machen, wenn Ihre Anwendung den Wert so sieht, dass er niemals null ist. Dann müssen Sie keinen Code schreiben, um Nullausnahmen usw. zu behandeln.