Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn die Spalten der zu verknüpfenden Tabellen NULL-Werte enthalten, werden diese Werte nicht als übereinstimmend angesehen. Das Vorhandensein von NULL-Werten in einer Spalte aus einer der verknüpften Tabellen kann nur mithilfe einer äußeren Verknüpfung zurückgegeben werden (es sei denn, die WHERE-Klausel schließt NULL-Werte aus).
Es folgen zwei Tabellen, bei denen NULL in der Spalte enthalten ist, die Bestandteil der Verknüpfung ist.
table1 table2
a b c d
------- ------ ------- ------
1 one NULL two
NULL three 4 four
4 join4
Eine Verknüpfung, die die Werte in der a-Spalte mit denen der c-Spalte vergleicht, erhält keine Übereinstimmung für die Zeilen, die NULL-Werte enthalten:
SELECT *
FROM table1 t1 JOIN table2 t2
ON t1.a = t2.c
ORDER BY t1.a
Nur eine Zeile mit dem Wert 4 in den a- und c-Spalten wird zurückgegeben:
a b c d
----------- ------ ----------- ------
4 join4 4 four
(1 row(s) affected)
Außerdem sind aus einer Basistabelle zurückgegebene NULL-Werte schwer von den von einer äußeren Verknüpfung zurückgegebenen NULL-Werten zu unterscheiden. Die folgende SELECT-Anweisung führt z. B. eine linke äußere Verknüpfung für diese beiden Tabellen aus:
SELECT *
FROM table1 t1 LEFT OUTER JOIN table2 t2
ON t1.a = t2.c
ORDER BY t1.a
Dies ist das Resultset.
a b c d
----------- ------ ----------- ------
NULL three NULL NULL
1 one NULL NULL
4 join4 4 four
(3 row(s) affected)
In den Ergebnissen ist ein NULL-Wert in den Daten nicht ohne weiteres von einem NULL-Wert zu unterscheiden, der eine fehlgeschlagene Verknüpfung darstellt. Wenn NULL-Werte in den zu verknüpfenden Daten enthalten sind, empfiehlt es sich, sie durch eine normale Verknüpfung aus den Ergebnissen auszuschließen.
Siehe auch
Andere Ressourcen
sp_dbcmptlevel (Transact-SQL)
WHERE (Transact-SQL)