Ein häufiger Fehler bei der Verwendung von Outer-Joins ist die Positionierung der Join-Bedingung. Wenn Sie Einschränkungen für die Nullwert-liefernde Tabelle in einer WHERE-Klausel festlegen, ist der Join in den meisten Fällen gleichwertig einem Inner-Join.
Das liegt daran, dass die meisten Suchbedingungen nicht als TRUE ausgewertet werden können, wenn eine ihrer Eingaben NULL ist. Die Einschränkungen der WHERE-Klausel für die Nullwert-liefernde Tabelle vergleicht Werte mit NULL, was zum Ausschluss der betreffenden Zeile aus der Ergebnismenge führt. Die Zeilen in der beibehaltenen Tabelle werden nicht beibehalten, wodurch der Join ein Inner-Join wird.
Eine Ausnahme bilden Vergleiche, die als TRUE ausgewertet werden, wenn eine der Eingaben NULL ist. Dazu zählen IS NULL, IS UNKNOWN, IS FALSE, IS NOT TRUE und Ausdrücke, die ISNULL oder COALESCE enthalten.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |