Wie wird das Umwandeln des Null-int-Feldes in den varchar in sql server gesteuert?

8

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?

    
TheBoyan 26.09.2011, 15:38
quelle

4 Antworten

22

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:

%Vor%

In meinem Beispiel wird natürlich, wenn beide Felder NULL sind, '' statt '' zurückgegeben, aber Sie erhalten die Idee.

    
Lamak 26.09.2011, 15:42
quelle
2

Schauen Sie in COALESCE, wo Sie die erste nicht null finden und 0 zurückgeben können, wenn alle null sind, z. B .:

%Vor%     
downforce 26.09.2011 15:43
quelle
2

Versuchen Sie es mit COALESCE

%Vor%     
Vinay 26.09.2011 15:45
quelle
1

Normalerweise NULL + (-, /, * usw.) something = NULL . Sie können

verwenden %Vor%

oder Sie können SET CONCAT_NULL_YIELDS_NULL OFF ( weitere Details )

    
a1ex07 26.09.2011 15:42
quelle

Tags und Links