Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.
Predikaten ALL, DISTINCT, DISTINCTROW, TOP

Anger poster som valts med SQL-frågor.

Syntax

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PROCENT]]]
FROM-tabell

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

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

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:

SELECT DISTINCT LastName
FROM Employees;

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:

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

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:

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

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:

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

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.



Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×