Hi,
Man kann NULL auch als "keine Daten vorhanden" interpretieren. Dass das etwas anderes als "im fachlichen Sinne nicht gesetzt" ist, merkt man spätestens dann, wenn man nach diesem Wert abfragen muss. Da alle Operationen mit NULL als einem der Operanden zum Ergebnis NULL führen, muss man immer eine Extrawurst braten, wenn man NULL-Werte berücksichtigen möchte, z.B. den Operator IS NULL bemühen.
Insbesondere werden bei Abfragen wie
select * from tabelle where spalte != 42
oder
select * from tabelle where spalte not in (17, 23, 42)
die Zeilen, die in spalte ein NULL stehen haben, NICHT ausgegeben - obwohl NULL ja durchaus was anderes als 42 ist bzw. nicht in der Menge {17, 23, 42} enthalten ist.
cu,
Andreas a/k/a MudGuard