Ein Hinweis zu Gleichheit
Important
|
Dieser Hinweis zu Gleichheits- und Ungleichheitsoperatoren gilt überall in Firebirds SQL-Sprache, nicht nur in |
Der Operator “=
”, der explizit in vielen bedingten Joins und implizit in benannten Spalten-Joins und natürlichen Joins verwendet wird, gleicht nur Werte mit Werten ab.Nach dem SQL-Standard ist NULL
kein Wert und daher sind zwei NULL
weder gleich noch ungleich.Wenn NULL
s in einem Join miteinander übereinstimmen müssen, verwenden Sie den IS NOT DISTINCT FROM
-Operator.Dieser Operator gibt true zurück, wenn die Operanden den gleichen Wert oder haben, wenn beide NULL
sind.
select *
from A join B
on A.id is not distinct from B.code;
Ebenso in den — extrem seltenen — Fällen, in denen Sie bei inequality beitreten möchten, verwenden Sie IS DISTINCT FROM
, nicht “<>
”, wenn NULL
als anders betrachtet werden soll Wert und zwei NULL
s als gleich betrachtet:
select *
from A join B
on A.id is distinct from B.code;