= NULL findet nichts. Natürlich genau dann, wenn ich es eilig habe.

Lernfragen und Praxis · 3 Antworten

STARTBEITRAG

#1

Übungstabelle mit ein paar NULL-Werten. WHERE ende = NULL liefert keine Zeilen. IS NULL liefert die erwarteten. Ich kenne die Schreibweise, aber wie erklärt man sauber, warum das Gleichheitszeichen nicht reicht?

0

Antworten

3
Antwort auf das Thema
#2

NULL steht nicht für einen normalen Wert, den du mit = vergleichen kannst. Solche Vergleiche ergeben UNKNOWN. WHERE behält nur TRUE. IS NULL ist die dafür vorgesehene Prüfung.

0
Antwort auf Antwort

Antwort auf #2 von jonas_sql

NULL steht nicht für einen normalen Wert, den du mit = vergleichen kannst. Solche Vergleiche ergeben UNKNOWN. WHERE behält nur TRUE. IS NULL ist die dafür vorgesehene Prüfung.
#3

Also ist auch NULL = NULL nicht TRUE. Dann sollte ich meinen Merksatz "beide fehlen, also gleich" beerdigen.

0
Antwort auf Antwort

Antwort auf #2 von jonas_sql

NULL steht nicht für einen normalen Wert, den du mit = vergleichen kannst. Solche Vergleiche ergeben UNKNOWN. WHERE behält nur TRUE. IS NULL ist die dafür vorgesehene Prüfung.
#4

Der dritte Wahrheitszustand macht es für mich verständlicher. Nur "NULL ist leer" war als Erklärung offenbar zu kurz.

0