NULL - der ganz normale Wahnsinn

ukulele

Datenbank-Guru
Beiträge
4.394
Manchmal ist es ja zum verzweifeln. Ich habe grade einen Fehler gefunden anchdem ich lange gesucht und gegrübelt habe der mich daran erinnert, das ich manche Dinge nicht verstehe.

Vieleicht kann mir jemand sagen warum SQL machmal so "unlogisch" handelt. Beispiel:

Code:
SELECT    *
FROM    tabelle
WHERE    primaerschluessel NOT IN (    SELECT    'NULL' )

...wird immer NULL ergeben, nur weil die Unterabfrage irgendwo mal NULL ausgibt. Ist das in jedem SQL so?
 
Werbung:

Charly

Datenbank-Guru
Beiträge
306
Hallo ukulele,

das sollte in jedem SQL so sein da man NULL nicht mit einem Wert vergleichen kann. NULL ist kein Wert.

Die Erklärung hier trifft es ziemlich genau.

Gruß Charly
 

ukulele

Datenbank-Guru
Beiträge
4.394
Aber ist das nicht in der Praxis eher hinderlich?

Ich bin auch immer wieder genervt darüber, das ein BIT nicht nur 0 und 1 sondern auch NULL sein kann. Ergo muss ja auch die Datenbank für einen BIT Eintrag mehr als ein Bit verwenden. Ich finde das zumindest verwirrend :)
 

Walter

Administrator
Teammitglied
Beiträge
421
Ist aber in der Praxis oft auch nützlich. NULL ist eben die Abwesenheit von Information and man kann ja auch explizit darauf abfragen.
 
Werbung:
Oben