ALL, DISTINCT, DISTINCTROW, TOP Prädikate
Gibt mit SQL-Abfragen ausgewählte Datensätze an.
Syntax
WÄHLE [ALLE | EINZIGARTIG | UNTERSCHEIDEN | [TOP n [PROZENT]]]
AUS -Tabelle
Eine SELECT-Anweisung, die diese Prädikate enthält, besteht aus folgenden Teilen:
Teil | Beschreibung |
ALLE | Wird angenommen, wenn Sie eines der Prädikate nicht angeben. Das Microsoft Access-Datenbankmodul wählt alle Datensätze aus, die die Bedingungen in der SQL-Anweisung erfüllen. Die folgenden zwei Beispiele sind äquivalent und geben alle Datensätze aus der Employees-Tabelle zurück: WÄHLEN SIE ALLE * WÄHLEN * |
UNTERSCHEIDBAR | Lässt Datensätze aus, die doppelte Daten in den ausgewählten Feldern enthalten. Um in die Ergebnisse der Abfrage aufgenommen 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: WÄHLEN SIE EINZIGARTIGEN Nachnamen 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, ist nicht aktualisierbar und spiegelt keine späteren Änderungen wider, die von anderen Benutzern vorgenommen wurden. |
UNTERSCHEIDEN | Lässt Daten aus, die auf ganzen doppelten Datensätzen basieren, nicht nur auf doppelten Feldern. Sie könnten beispielsweise eine Abfrage erstellen, die die Tabellen „Kunden" und „Bestellungen" im Feld „Kunden-ID" verbindet. Die Customers-Tabelle enthält keine doppelten CustomerID-Felder, die Orders-Tabelle jedoch, 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 einen Auftrag haben, aber keine Details zu diesen Aufträgen: WÄHLEN SIE DISTINCTROW Firmenname Wenn Sie DISTINCTROW weglassen, erzeugt diese Abfrage mehrere Zeilen für jedes Unternehmen, das mehr als einen Auftrag hat. 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 Bereichs liegen, der durch eine ORDER BY-Klausel angegeben ist. Angenommen, Sie möchten die Namen der 25 besten Schüler des Jahrgangs 1994: TOP 25 AUSWÄHLEN 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. Wenn im vorherigen Beispiel der fünfundzwanzigste und der sechsundzwanzigste Notendurchschnitt identisch sind, gibt die Abfrage 26 Datensätze zurück. 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 Bereichs liegen, der durch eine ORDER BY-Klausel angegeben ist. Angenommen, Sie möchten statt der besten 25 Schüler die unteren 10 Prozent der Klasse: WÄHLEN SIE DIE BESTEN 10 PROZENT Das ASC-Prädikat gibt eine Rückgabe von Tiefstwerten an. Der Wert, der auf TOP folgt, muss eine Ganzzahl ohne Vorzeichen sein. TOP wirkt sich nicht darauf aus, ob die Abfrage aktualisierbar ist oder nicht. |
Tabelle | Der Name der Tabelle, aus der Datensätze abgerufen werden. |
No comments:
Post a Comment