Vermeldt de records die met SQL-query's zijn geselecteerd.
Syntaxis
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM tabelEen SELECT-instructie die deze predicaten bevat, heeft de volgende argumenten:
Argument |
Beschrijving |
ALL |
Dit argument wordt verondersteld als u geen van de predicaten gebruikt. De Microsoft Access-database-engine selecteert alle records die voldoen aan de voorwaarden in de SQL-instructie. De volgende twee voorbeelden hebben hetzelfde resultaat: alle records uit de tabel Werknemers:
|
DISTINCT |
Dit argument geeft aan dat records met dubbele gegevens in de geselecteerde velden moeten worden overgeslagen. De waarden voor elk veld dat in de SELECT-instructie wordt vermeld, moeten uniek zijn om in het resultaat van de query te worden opgenomen. Meerdere werknemers in een tabel Werknemers kunnen bijvoorbeeld dezelfde achternaam hebben. Als het veld Achternaam voor twee records de achternaam Wolthuis bevat, geeft de volgende SQL-instructie als resultaat slechts één record die de achternaam Wolthuis bevat:
Als u het argument DISTINCT weglaat, geeft deze query als resultaat beide records met de achternaam Wolthuis. Als de SELECT-component meerdere velden bevat, wordt een bepaalde record alleen in de resultaten opgenomen als de combinatie van waarden uit alle velden uniek zijn. De uitvoer van een query waarin het argument DISTINCT wordt gebruikt, kan niet worden bijgewerkt en houdt geen rekening met latere wijzigingen door andere gebruikers. |
DISTINCTROW |
Als dit argument wordt gebruikt, worden gegevens weggelaten op basis van volledige dubbele records, niet alleen dubbele velden. U kunt bijvoorbeeld een query maken waarin de tabellen Klanten en Orders worden samengevoegd op basis van het veld Klant-id. De tabel Klanten bevat geen dubbele Klant-id-velden, maar de tabel Orders wel omdat elke klant meerdere orders kan hebben. De volgende SQL-instructie toont u hoe u het argument DISTINCTROW kunt gebruiken om een lijst te maken met bedrijven die ten minste één order hebben, maar zonder details over deze orders:
Als u het argument DISTINCTROW weglaat, levert deze query meerdere rijen op voor elk bedrijf met meer dan één order. DISTINCTROW heeft alleen effect als u velden selecteert uit sommige, maar niet alle, tabellen die in de query worden gebruikt. DISTINCTROW wordt genegeerd als uw query slechts één tabel bevat, of als u velden uit alle tabellen laat weergeven. |
TOP n [PERCENT] |
Geeft als resultaat een bepaald aantal records boven of onder aan een bereik dat door een ORDER BY-component is aangeduid. U wilt bijvoorbeeld de namen van de beste 25 studenten van het schooljaar 1994 weten:
Als u de ORDER BY-component niet gebruikt, geeft de query als resultaat een willekeurige reeks 25 records uit de tabel Studenten die voldoen aan de WHERE-component. Met het predicaat TOP wordt geen keuze gedaan uit gelijke waarden. Als in het voorgaande voorbeeld het 25e en 26e gemiddeld eindcijfer identiek is, geeft de query als resultaat 26 records. U kunt ook het gereserveerde woord PERCENT gebruiken om als resultaat een bepaald percentage records te krijgen dat boven of onder aan een bepaald bereik valt, aangeduid door een ORDER BY-component. Stel dat u niet de beste 25 studenten wilt weten, maar wel de 10 procent met de slechtste resultaten van dat schooljaar:
Met het predicaat ASC krijgt u als resultaat de laagste waarden. De waarde na TOP moet een geheel getal zonder teken zijn. TOP heeft geen invloed op het feit of de query al dan niet kan worden bijgewerkt. |
tabel |
De naam van de tabel waaruit records worden opgehaald. |