Anger poster som valts med SQL-frågor.
Syntax
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PROCENT]]]
FROM-tabellEtt SELECT-uttryck som innehåller dessa predikat består av följande delar:
Element |
Beskrivning |
ALL |
Antas om du inte tar med något av predikaten. Microsoft Access-databasmotorn markerar alla poster som uppfyller villkoren i SQL-instruktionen. Följande två exempel är likvärdiga och returnerar alla poster från tabellen Anställda:
|
DISTINCT |
Utelämnar poster som innehåller dubblettdata i de markerade fälten. För att inkluderas i resultatet av frågan måste värdena för varje fält som anges i SELECT-instruktionen vara unika. Flera anställda som visas i tabellen Anställda kan till exempel ha samma efternamn. Om två poster innehåller Smith i fältet LastName returnerar följande SQL-uttryck bara en post som innehåller Smith:
Om du utelämnar DISTINCT returnerar den här frågan båda Smith-posterna. Om SELECT-satsen innehåller fler än ett fält måste kombinationen av värden från alla fält vara unik för att en viss post ska tas med i resultatet. Resultatet av en fråga som använder DISTINCT kan inte uppdateras och återspeglar inte efterföljande ändringar som gjorts av andra användare. |
DISTINCTROW |
Utelämnar data baserat på hela dubblettposter, inte bara dubblettfält. Du kan till exempel skapa en fråga som kopplar tabellerna Kunder och Order i fältet Kundnr. Tabellen Kunder innehåller inga dubbletter av CustomerID-fält, men tabellen Order gör det eftersom varje kund kan ha många order. Följande SQL-instruktion visar hur du kan använda DISTINCTROW för att skapa en lista över företag som har minst en order men utan information om dessa order:
Om du utelämnar DISTINCTROW skapar den här frågan flera rader för varje företag som har fler än en order. DISTINCTROW har bara effekt när du väljer fält från vissa, men inte alla, av tabellerna som används i frågan. DISTINCTROW ignoreras om frågan bara innehåller en tabell eller om du utdatafält från alla tabeller. |
TOPP n [PROCENT] |
Returnerar ett visst antal poster som ligger högst upp eller längst ned i ett område som anges av en ORDER BY-sats. Anta att du vill ha namnen på de 25 bästa eleverna från klassen 1994:
Om du inte tar med ORDER BY-satsen returnerar frågan en godtycklig uppsättning med 25 poster från tabellen Elever som uppfyller WHERE-satsen. Predikatet TOP väljer inte mellan lika värden. I exemplet ovan returnerar frågan 26 poster om medelvärdena för de tjugofemtjugo och tjugosju sjätte högsta betygen är desamma. Du kan också använda det reserverade ordet PROCENT för att returnera en viss procentandel poster som hamnar högst upp eller längst ned i ett intervall som anges av en ORDER BY-sats. Anta att du i stället för de 25 bästa eleverna vill ha de 10 lägsta procenten av klassen:
ASC-predikatet anger en retur av de lägsta värdena. Värdet efter TOP måste vara ett osignerat heltal. TOP påverkar inte om frågan kan uppdateras eller inte. |
tabell |
Namnet på den tabell från vilken posterna ska hämtas. |