Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Hoffentlich war das obige Beispiel mit den drei Bedingungen gut zu verstehen. Betrachten Sie gleichwohl folgende Abänderung:
WHERE end_date IS NULL
AND NOT (title = 'Teller' OR start_date < '2007-01-01')
Haben Sie die Änderung erkannt? Ich habe hinter dem and-Operator auf der zweiten Zeile einen not-Operator eingefügt. Nun suche ich nicht mehr nach Mitarbeitern, deren Arbeitsverträge noch laufen und die entweder Kassierer sind oder vor 2007 zur Bank kamen, sondern nach Mitarbeitern, deren Arbeitsverträge noch laufen und die sowohl keine Kassierer sind als auch 2007 oder später zur Bank kamen. Tabelle 4.3 zeigt die möglichen Resultate für dieses Beispiel.
Tabelle 4.3 Auswertung von drei Bedingungen mit and, or und not
|
Zwischenergebnis |
Endergebnis |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Der not-Operator ist für einen Datenbankserver kein Problem, aber ein Mensch kann eine where-Klausel mit diesem Operator nicht mehr so leicht durchschauen. Daher trifft man ihn nur selten an. In diesem Fall könnte man die where-Klausel auch ohne not-Operator schreiben:
WHERE end_date IS NULL AND title != 'Teller' AND start_date >= '2007-01-01'
Dem Server ist es sicherlich egal, aber Sie als Leser können diese Version der where-Klausel sicherlich einfacher verstehen.