Gibt Datensätze an, die mit SQL-Abfragen ausgewählt wurden.
Syntax
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM-TabelleEine SELECT-Anweisung, die diese Prädikate enthält, umfasst die folgenden Teile:
Teil |
Beschreibung |
ALL |
Angenommen, wenn Sie keins der Prädikate einschließen. Die Microsoft Access-Datenbank-Engine wählt alle Datensätze aus, die die Bedingungen in der SQL-Anweisung erfüllen. Die folgenden beiden Beispiele sind äquivalent und geben alle Datensätze aus der Tabelle Employees zurück:
|
DISTINCT |
Unterlässt Datensätze, die doppelte Daten in den ausgewählten Feldern enthalten. Um in die Ergebnisse der Abfrage einbezogen zu werden, müssen die Werte für jedes in der SELECT-Anweisung aufgeführte Feld eindeutig sein. Beispielsweise können mehrere Mitarbeiter, die in einer Employees-Tabelle aufgeführt sind, denselben Nachnamen haben. Wenn zwei Datensätze Smith im Feld LastName enthalten, gibt die folgende SQL-Anweisung nur einen Datensatz zurück, der Smith enthält:
Wenn Sie DISTINCT weglassen, gibt diese Abfrage beide Smith-Datensätze zurück. Wenn die SELECT-Klausel mehr als ein Feld enthält, muss die Kombination von Werten aus allen Feldern eindeutig sein, damit ein bestimmter Datensatz in die Ergebnisse aufgenommen wird. Die Ausgabe einer Abfrage, die DISTINCT verwendet, kann nicht aktualisiert werden und spiegelt keine nachfolgenden Änderungen wider, die von anderen Benutzern vorgenommen wurden. |
DISTINCTROW |
Lässt Daten basierend auf vollständigen doppelten Datensätzen aus, nicht nur auf doppelten Feldern. Sie können beispielsweise eine Abfrage erstellen, die die Tabellen Customers und Orders im Feld CustomerID verknüpft. Die Tabelle Customers enthält keine doppelten CustomerID-Felder, aber die Tabelle Bestellungen hat dies, da jeder Kunde viele Bestellungen haben kann. Die folgende SQL-Anweisung zeigt, wie Sie DISTINCTROW verwenden können, um eine Liste von Unternehmen zu erstellen, die mindestens eine Bestellung haben, aber ohne Details zu diesen Aufträgen:
Wenn Sie DISTINCTROW weglassen, erzeugt diese Abfrage mehrere Zeilen für jedes Unternehmen mit mehr als einer Bestellung. DISTINCTROW wirkt sich nur aus, wenn Sie Felder aus einigen, aber nicht allen Tabellen auswählen, die in der Abfrage verwendet werden. DISTINCTROW wird ignoriert, wenn Ihre Abfrage nur eine Tabelle enthält oder Wenn Sie Felder aus allen Tabellen ausgeben. |
TOP n [PROZENT] |
Gibt eine bestimmte Anzahl von Datensätzen zurück, die am oberen oder unteren Rand eines durch eine ORDER BY-Klausel angegebenen Bereichs liegen. Angenommen, Sie möchten die Namen der 25 besten Schüler aus der Klasse von 1994:
Wenn Sie die ORDER BY-Klausel nicht einschließen, gibt die Abfrage einen beliebigen Satz von 25 Datensätzen aus der Students-Tabelle zurück, die die WHERE-Klausel erfüllen. Das TOP-Prädikat wählt nicht zwischen gleichen Werten aus. Im vorherigen Beispiel gibt die Abfrage 26 Datensätze zurück, wenn der Fünfundzwanzigste und der sechsundzwanzigste Notendurchschnitt gleich sind. Sie können auch das reservierte Wort PERCENT verwenden, um einen bestimmten Prozentsatz von Datensätzen zurückzugeben, die am oberen oder unteren Rand eines durch eine ORDER BY-Klausel angegebenen Bereichs liegen. Angenommen, Sie möchten anstelle der 25 besten Kursteilnehmer die untersten 10 Prozent des Kurses:
Das ASC-Prädikat gibt eine Rückgabe der unteren Werte an. Der Wert, der auf TOP folgt, muss eine ganze Zahl ohne Vorzeichen sein. TOP wirkt sich nicht darauf aus, ob die Abfrage aktualisiert werden kann. |
Tabelle |
Der Name der Tabelle, aus der Datensätze abgerufen werden. |