Ich habe folgende (stark vereinfacht) XML-Dokument, das ich in meiner Datenbank lese so:leere Elemente wie NULL-Werte in SQL Server OpenXML Funktion Behandlung von
insert into [Foo]
([bar])
select
ds.[bar]
from openxml(@xmlHandle, 'root/row', 2)
with ([bar] int) ds
Das Problem ist, dass OPENXML leere Felder mit dem int-Datentyp auf Null setzt, so dass dies in meine Tabelle eingefügt wird:
bar
----
123
0
0
Was ich in meiner Tabelle eingefügt werden soll ist:
bar
----
123
0
NULL
Wie erhalte ich die OPENXML-Funktion leere Felder als NULL zu behandeln und es nicht standardmäßig auf Null konvertieren?
Hallo Kevin, hatten Sie ein Problem mit dem NULLIF-Operator, wie in meiner Antwort oben erwähnt? Der offensichtliche Vorteil des NULLIF-Operators ist die verbesserte Lesbarkeit und Vermeidung der WHEN ... THEN-Klauseln. – Vaibhav
FYI: Wenn Sie einen leeren Knoten bereitstellen, erhalten Sie die Konvertierung auf einen Standardwert. Wenn Sie den leeren Knoten entfernen, erhalten Sie eine NULL – Jay