Dieser Artikel ist Teil einer Artikelreihe über Access SQL. In diesem Artikel wird beschrieben, wie Sie eine WHERE-Klausel schreiben, und anhand von Beispielen werden verschiedene Techniken veranschaulicht, die Sie in einer WHERE-Klausel verwenden können.
In einer SQL-Anweisung gibt die WHERE-Klausel Kriterien an, die Feldwerte erfüllen müssen, damit die Datensätze mit den entsprechenden Werten in die Abfrageergebnisse einbezogen werden.
Eine Übersicht über Access SQL finden Sie im Artikel Access SQL: Grundkonzepte, Sprache und Syntax.
Inhalt dieses Artikels
Einschränken von Ergebnissen mithilfe von Kriterien
Wenn Sie Daten verwenden möchten, um die Anzahl von Datensätzen zu begrenzen, die in einer Abfrage zurückgegeben werden, können Sie Kriterien verwenden. Ein Abfragekriterium ähnelt einer Formel – es ist eine Zeichenfolge, die aus Feldverweisen, Operatoren und Konstanten bestehen kann. Abfragekriterien sind ein Typ von Ausdruck.
Die folgende Tabelle enthält Beispielkriterien und Erläuterungen der jeweiligen Funktionsweise.
Kriterien |
Beschreibung |
>25 und <50 |
Dieses Kriterium gilt für ein Feld vom Typ "Zahl", wie z. B. "Preis" oder "Lagerbestand". Es schließt nur jene Datensätze ein, bei denen das Feld "Preis" oder "Lagerbestand" einen Wert größer als 25 und kleiner als 50 enthält. |
DatDiff ("jjjj"; [Geburtsdatum]; Datum()) > 30 |
Dieses Kriterium gilt für ein Feld vom Typ "Datum/Uhrzeit", wie z. B. "Geburtsdatum". Das Abfrageergebnis enthält nur Datensätze, bei denen die Anzahl von Jahren zwischen dem Geburtsdatum einer Person und dem aktuellen Datum größer als 30 ist. |
Ist Null |
Dieses Kriterium kann auf alle Feldtypen angewendet werden, um Datensätze mit dem Feldwert "Null" anzuzeigen. |
Wie aus der vorherigen Tabelle hervorgeht, können Kriterien abhängig von dem Datentyp des Felds, für das die Kriterien gelten, und Ihren speziellen Anforderungen sehr unterschiedlich sein. Einige Kriterien sind einfach und verwenden einfache Operatoren und Konstanten. Andere Kriterien sind komplex und verwenden Funktionen und spezielle Operatoren und enthalten Feldverweise.
Wichtig: Wenn ein Feld mit einer Aggregatfunktion verwendet wird, können Sie in einer WHERE-Klausel für dieses Feld keine Kriterien angeben. Sie verwenden stattdessen eine HAVING-Klausel, um Kriterien für aggregierte Felder anzugeben. Weitere Informationen finden Sie in den Artikeln Access SQL: Grundkonzepte, Sprache und Syntax und HAVING-Klausel.
Die Syntax der WHERE-Klausel
Sie geben Abfragekriterien in der WHERE-Klausel einer SELECT-Anweisung an.
Eine WHERE-Klausel weist die folgende Basissyntax auf:
WHERE field = criterion
Angenommen, Sie suchen die Telefonnummer eines Kunden, erinnern sich aber nur noch daran, dass der Nachname des Kunden Bagel lautet. Statt alle Telefonnummern in Ihrer Datenbank durchzugehen, könnten Sie eine WHERE-Klausel verwenden, um die Ergebnisse einzuschränken und die gewünschte Telefonnummer einfacher zu finden. Wenn wir davon ausgehen, dass Nachnamen in dem Feld "Nachname" gespeichert sind, sieht die WHERE-Klausel wie folgt aus:
WHERE [LastName]='Bagel'
Hinweis: Die Kriterien in einer WHERE-Klausel müssen nicht auf der Äquivalenz von Werten basieren. Sie können auch andere Vergleichsoperatoren wie "Größer als" (>) oder "Kleiner als" (<) verwenden. Beispiel: WHERE [Preis]>100.
Verwenden der WHERE-Klausel zum Kombinieren von Datenquellen
Es kann vorkommen, dass Sie Datenquellen auf der Basis von Feldern kombinieren möchten, die übereinstimmende Daten enthalten, jedoch unterschiedliche Datentypen aufweisen. Beispielsweise weist ein Feld in einer Tabelle den Datentyp "Zahl" auf, und Sie möchten dieses Feld mit einem Feld in einer anderen Tabelle vergleichen, das mit dem Datentyp "Text" formatiert ist.
Eine Verknüpfung von Feldern mit unterschiedlichen Datentypen ist nicht möglich. Zum Kombinieren von Daten aus zwei Datenquellen basierend auf Werten in Feldern, die unterschiedliche Datentypen aufweisen, müssen Sie eine WHERE-Klausel erstellen, die ein Feld als Kriterium für das andere Feld verwendet, indem das Schlüsselwort LIKE verwendet wird.
Angenommen, Sie möchten Daten aus Tabelle1 und Tabelle2 verwenden, aber nur, wenn die Daten in Feld1 (einem Textfeld in Tabelle1) den Daten in Feld2 (einem Zahlenfeld in Tabelle2) entsprechen. Ihre WHERE-Klausel würde dann wie folgt aussehen:
WHERE field1 LIKE field2
Weitere Informationen zum Erstellen von Kriterien zur Verwendung in einer WHERE-Klausel finden Sie im Artikel Beispiele für Abfragekriterien.