Zunächst möchte ich wissen, wie funktioniert CAST
mit NULL
-Feldern und wie verhält es sich, wenn der Wert NULL
ist?
Zum Beispiel im Ausdruck:
%Vor% Was passiert, wenn der Wert INT_FIELD
NULL
ist?
Der Grund ist, dass wenn ich folgendes versuche:
%Vor% Ich erhalte NULL
, obwohl SOME_OTHER_FIELD
nicht null ist. Ich vermute, es hat eine Art von Logik, dass NULL + something = NULL
, aber ich bin mir nicht sicher.
Wie kann ich dieses Verhalten kontrollieren?
Sie müssen ISNULL
oder COALESCE
verwenden, da die meisten Zeilenoperationen zwischen NULL
zu NULL
führen. CAST
eines NULL
gibt NULL
und NULL
+ etwas ist auch NULL
zurück. In Ihrem Beispiel sollten Sie so etwas tun:
In meinem Beispiel wird natürlich, wenn beide Felder NULL
sind, '' statt '' zurückgegeben, aber Sie erhalten die Idee.
Normalerweise NULL
+ (-, /, * usw.) something
= NULL
.
Sie können
oder Sie können SET CONCAT_NULL_YIELDS_NULL OFF
( weitere Details )
Tags und Links sql sql-server null