Prädikate ALL, DISTINCT, DISTINCTROW, TOP
Applies ToAccess für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Gibt Datensätze an, die mit SQL-Abfragen ausgewählt wurden.

Syntax

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]FROM-Tabelle

Eine 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:

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

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:

SELECT DISTINCT LastNameFROM Employees;

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:

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

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:

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

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:

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

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.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.