Home - Operatoren www.sqldocu.com
zurück vor



Suche nach Leeren/Undefinierten (Spalten)Werten


Beschreibung
top
Auf den ersten Blick scheint es sehr trivial zu sein, abzufragen ob ein Spaltenwert leer ist. Besonders bei Zeichenketten kommt es zu Missverständissen. Denn das RDBMS unterscheidet zwischen leeren Zeichenketten und undefiniertem Spaltenwert (Zeichenkette). Folgende Möglichkeiten gibt es:
  • IS NULL   Es wird überprüft ob der Spaltenwert leer (undefinert) ist
  • IS NOT NULL   Es wird überprüft ob der Spaltenwert definert ist
  • =''   Es wird wird nach einer leeren Zeichenkette gesucht.
Diese Operatoren werden in der WHERE Option verwendet und können mit jeder SQL Anweisung verwendet werden, die die WHERE Klausel unterstützt (z.B: DELETE, UPDATE usw.).
Ob eine Spalte leer sein darf wird beim Erzeugen der Tabelle festgelegt (siehe Tabellen erstellen )

Beispiel Tabelle:
top
Sie wird in mehreren Beispielen verwendet um SQL besser darstellen zu können.
Die Tabelle captain besteht aus 2 Spalten und 5 Reihen
Spalte1 hat den Namen name.
Spalte2 hat den Namen nr_schiff

Spaltenname name nr_schiff
Reihe 1 James Kirk U.S.S. Enterprise
Reihe 2 Jean-Luc Picard U.S.S. Stargazer
Reihe 3 Kathryn Janeway
Reihe 4 Commodore Decker NULL
Reihe 5 Thomas Ramart U.S.S. Phoenix



Suche nach leerem (undefiniertem) Spaltenwert
top
SELECT name, nr_schiff FROM captain
WHERE nr_schiff IS NULL

Es werden nur jene Zeilen angezeigt, in der die Spalte nr_schiff keinen Wert enthält. Beachte: Die Zeile mit Kathryn Janeway wird nicht angezeigt da die Spalte nr_schiff eine leere Zeichenkette (siehe Suche nach leerer Zeichenkette) enthält!

Ergebnistabelle:
Commodore Decker NULL

PHP Syntax     PERL Syntax


Suche nach leerem (undefiniertem) Spaltenwert
top
SELECT name, nr_schiff FROM captain
WHERE nr_schiff IS NOT NULL

Es werden nur jene Zeilen angezeigt, in der die Spalte nr_schiff einen Wert enthält. Beachte: Die Zeile mit Kathryn Janeway wird angezeigt, da die Spalte nr_schiff eine leere Zeichenkette (siehe Suche nach leerer Zeichenkette) enthält!

Ergebnistabelle:
James Kirk U.S.S. Enterprise
Jean-Luc Picard U.S.S. Stargazer
Kathryn Janeway
Thomas Ramart U.S.S. Phoenix

PHP Syntax     PERL Syntax


Suche nach leerer Zeichenkette
top
SELECT name, nr_schiff FROM captain
WHERE nr_schiff =''

Es werden nur jene Zeilen angezeigt, in der die Spalte nr_schiff eine leere Zeichenkette enthält. Beachte: Die Zeile mit Commodore Decker wird nicht angezeigt, da die Spalte nr_schiff leer (siehe Suche nach leerem (undefiniertem) Spaltenwert) ist!

Ergebnistabelle:
James Kirk U.S.S. Enterprise
Jean-Luc Picard U.S.S. Stargazer
Kathryn Janeway
Thomas Ramart U.S.S. Phoenix

PHP Syntax     PERL Syntax


top