Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

8.3.3 Festlegen von Bedingungen

8.3.4 Vergleichsausdrücke

Bei der Zusammenstellung der Vergleichsausdrücke sind der Fantasie praktisch keine Grenzen gesetzt. In den folgenden Abschnitten finden Sie die Grundlagen und die wichtigsten Möglichkeiten für Vergleichsausdrücke.

Operatoren

Für Vergleiche stellt SQL die folgenden Operatoren zur Verfügung:

  • gleich (=)
  • größer als (>)
  • größer als oder gleich (>=)
  • kleiner als (<)
  • leiner als oder gleich (<=)
  • ungleich (<>)
  • Vergleichsumkehr ( NOT)
  • zwischen zwei Werten ( BETWEEN ... AND)
  • Vergleich mit Platzhaltern wie Sternchen (*, beliebig viele Zeichen) oder Fragezeichen (?, ein Zeichen): LIKE
  • Vergleich mit Null-Werten: IS NULL
  • Vergleich mit den Werten einer Menge: IN
  • Vergleiche mit Zahlen

    Wenn Sie einen der obigen Vergleichsoperatoren für den Vergleich mit Zahlen verwenden, können Sie alle Varianten außer Vergleichen mit Platzhaltern einsetzen. Beispiele:

    SELECT * FROM tblArtikel WHERE Preis > 10;

    SELECT * FROM tblArtikel WHERE Preis BETWEEN 5 AND 15;

    Geben Sie Zahlen immer ohne Formatierungen wie Prozentzeichen (%), Währungsangaben (€) oder dergleichen ein. Verwenden Sie nur die nackten Zahlen als Vergleichsausdrücke und setzen Sie den Punkt als Dezimaltrennzeichen:

    SELECT * FROM tblArtikel WHERE Mehrwertsteuer IN (0.7, 0.16);

    Vergleiche mit Zeichenketten

    Wichtig für die Verwendung von Zeichenketten ist vor allem, dass Sie den Vergleichswert in einfache (') oder doppelte (") Anführungszeichen einschließen. Probleme werden Sie jedoch bekommen, wenn innerhalb der Zeichenkette selbst Anführungszeichen enthalten sind, weil der SQL-Interpreter diese dann als Trennzeichen der Zeichenkette interpretiert. Um auf der sichereren Seite zu sein, sind doppelte Anführungszeichen meist günstiger. Dann gibt es auch keine Fehlermeldung, wenn ein Name wie »D'Hondt« ausgewertet wird. Weiterhin sind alle Vergleichsoperationen möglich. Am sinnvollsten ist jedoch der LIKE-Vergleich, da er die Verwendung von Platzhaltern wie Sternchen (*), das stellvertretend für beliebig viele Zeichen steht, und Fragezeichen (?), das stellvertretend für je ein Zeichen steht, unterstützt. Die folgenden Beispiele verdeutlichen dies:

  • Alle Mitarbeiter, deren Vorname mit A beginnt:
  • SELECT * FROM tblMitarbeiter WHERE Vorname LIKE "A*";

  • Alle Mitarbeiter, deren Nachname die Zeichenfolge EI enthält:
  • SELECT * FROM tblMitarbeiter WHERE Nachname LIKE "*EI*";

  • Alle Mitarbeiter, deren Nachname mit einem Buchstaben von A-J beginnt:
  • SELECT * FROM tblMitarbeiter WHERE Vorname >= "A" AND Vorname < "K";

    Vergleiche mit Datumsangaben

    Datumsangaben sind ein fehlerträchtiges Gebiet - vor allem in Abfragen. Auf Nummer Sicher gehen Sie mit den folgenden beiden Datumsformaten:

  • Amerikanisches Datumsformat: #mm/dd/yyyy#
  • ISO-Datumsformat: #yyyy/mm/dd#
  • Verwenden Sie eines dieser Formate als Grundlage für den Vergleichswert. Gehen Sie kein Risiko ein. Lassen Sie sich auch nicht davon irritieren, dass das Datum in der Tabelle ganz anders eingegeben und angezeigt wird. Von dieser Feinheit abgesehen können Sie für Vergleiche mit dem Datum alle Vergleichsvarianten mit Ausnahme des Vergleichs mit Platzhaltern heranziehen.

    Beispiele:

    SELECT * FROM tblBestellungen
    WHERE Bestelldatum = #2005/05/15#;

    SELECT * FROM tblBestellungen
    WHERE Bestelldatum In (#5/5/2005#, #5/7/2005#);

    SELECT * FROM tblBestellungen
    WHERE Lieferdatum BETWEEN #2005/5/10# AND #2005/5/15#;

    Vergleiche mit dem Null-Wert

    Der Null-Wert besitzt eine besondere Funktion: Liefert ein Vergleich eines Feldes mit dem Wert Null den Wert True, ist das Feld leer.

    Das folgende Beispiel liefert alle Mitarbeiter, die keine E-Mail-Adresse haben:

    SELECT * FROM tblMitarbeiter WHERE Email IS NULL;

    Umgekehrt ergibt das nächste Beispiel alle Mitarbeiter, die eine E-Mail-Adresse besitzen:

    SELECT * FROM tblMitarbeiter WHERE NOT EMail IS NULL;

    Vergleiche mit Funktionen

    Access-SQL bietet die Möglichkeit, auch Funktionen als Vergleichswert zu verwenden. Eine oft als Vergleichswert verwendete Funktion ist Date(). Die folgende Abfrage ermittelt alle Bestellungen, deren Lieferdatum mit dem aktuellen Datum übereinstimmt:

    SELECT * FROM tblBestellungen WHERE Lieferdatum = DATE();

    Auch berechnete Ausdrücke sind erlaubt. Alle Bestellungen der letzten 30 Tage ermitteln Sie folgendermaßen:

    SELECT * FROM tblBestellungen WHERE Bestelldatum = DATE() - 30;

    Standard-SQL bietet einige Funktionen wie etwa die Aggregatfunktionen Sum, Count, Max oder Min (siehe weiter unten in Abschnitt 8.3.6, »Aggregatfunktionen«). Unter Access-SQL lassen sich wie im Beispiel auch eingebaute VBA-Funktionen, benutzerdefinierte Funktionen und Verweise auf Objekte verwenden. Letzteres ist vor allem im Zusammenhang mit der Einbindung der Steuerelementinhalte von Formularen interessant.

    Nächster Abschnitt:

    8.3.5 Sortieren von Daten

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.