Prädikate ALL, DISTINCT, DISTINCTROW, TOP

Prädikate ALL, DISTINCT, DISTINCTROW, TOP

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

Syntax

WÄHLEN SIE [ALLE | DISTINCT | DISTINCTROW | [TOP n [PROZENT]]]
FROM-Tabelle

Eine SELECT-Anweisung, die diese Prädikate enthält, hat die folgenden Teile:

Teil

Beschreibung

ALL

Wird angenommen, wenn Sie keins der Prädikate enthalten. Das Microsoft Access-Datenbankmodul wählt alle Datensätze aus, die die Bedingungen in der SQL erfüllen. Die folgenden beiden Beispiele sind gleichwertig und geben alle Datensätze aus der Tabelle "Mitarbeiter" zurück:

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

Datensätze, die doppelte Daten in den ausgewählten Feldern enthalten, werden nicht angezeigt. Um in die Ergebnisse der Abfrage einbezogen zu werden, müssen die Werte für jedes feld, das in der SELECT-Anweisung aufgeführt ist, eindeutig sein. So haben beispielsweise mehrere Mitarbeiter, die in einer Tabelle "Mitarbeiter" aufgeführt sind, möglicherweise denselben Nachnamen. Wenn zwei Datensätze smith im Feld Nachname enthalten, gibt die folgende SQL-Anweisung nur einen Datensatz zurück, der Smith enthält:

SELECT DISTINCT LastName
FROM 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 gegebener Datensatz in die Ergebnisse einbezogen 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

Keine Daten, die auf ganzen doppelten Datensätzen basieren, nicht nur doppelte Felder. Sie können beispielsweise eine Abfrage erstellen, die die Tabellen "Kunden" und "Bestellungen" im Feld "CustomerID" zusamment. Die Tabelle "Kunden" enthält keine doppelten "Kunden-ID"-Felder, die Tabelle "Bestellungen" jedoch, da jeder Kunde viele Bestellungen haben kann. Die folgende SQL zeigt, wie Sie DISTINCTROW verwenden können, um eine Liste von Unternehmen zu erstellen, die über mindestens eine Bestellung verfügen, aber ohne Details zu diesen Aufträgen:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

Wenn Sie DISTINCTROW weglassen, werden mit dieser Abfrage mehrere Zeilen für jedes Unternehmen mit mehr als einer Bestellung erstellt.

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 ausgabe.

TOP n [PROZENT]

Gibt eine bestimmte Anzahl von Datensätzen zurück, die am oberen oder unteren Rand eines Bereichs liegen, der durch eine ORDER BY-Klausel angegeben wird. Angenommen, Sie möchten die Namen der 25 besten Kursteilnehmer aus der Klasse von 1994 verwenden:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

Wenn Sie die ORDER BY-Klausel nicht enthalten, gibt die Abfrage einen beliebigen Satz von 25 Datensätzen aus der Tabelle Students zurück, die der WHERE-Klausel entsprechen.

Das Prädikat TOP wählt nicht zwischen gleichen Werten aus. Wenn im vorherigen Beispiel die Punktdurchsätze für die fünfundzwanzigste und sechsundzwanzigste Und sechsundzwanzigste Klasse gleich sind, gibt die Abfrage 26 Datensätze zurück.

Sie können auch das reservierte Wort PROZENT verwenden, um einen bestimmten Prozentsatz von Datensätzen zurückzukehren, die am oberen oder unteren Rand eines Bereichs liegen, der durch eine ORDER BY-Klausel angegeben wird. Angenommen, Sie möchten anstelle der 25 besten Kursteilnehmer die unteren 10 Prozent des Kurss verwenden:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

Das ASC-Prädikat gibt eine Rückgabe der untersten Werte an. Der Wert, der auf TOP folgt, muss eine nicht signierte ganze Zahl sein.

TOP hat keinen Einfluss darauf, ob die Abfrage aktualisiert werden kann.

Tabelle

Der Name der Tabelle, aus der Datensätze abgerufen werden.



Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Office Insider werden

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×