Predikaten ALL, DISTINCT, DISTINCTROW, TOP

Predikaten ALL, DISTINCT, DISTINCTROW, TOP

Obs!: Vi vill kunna erbjuda dig bästa möjliga supportinnehåll så fort som möjligt och på ditt språk. Den här sidan har översatts med hjälp av automatiserad översättning och kan innehålla grammatiska fel eller andra felaktigheter. Vår avsikt är att den här informationen ska vara användbar för dig. Vill du berätta för oss om informationen är till hjälp längst ned på sidan? Här är artikeln på engelska som referens.

Anger poster som markerats med SQL-frågor.

Syntax

VÄLJ [ALLA | DISTINKTA | DISTINCTROW | [ÖVERSTA n [PROCENT]]]
Från tabell

Ett SELECT-uttryck som innehåller dessa predikaten består av följande syntaktiska element:

Element

Beskrivning

ALL

Antas om du inte innehåller något av predikaten. Microsoft Access-databasmotorn markerar alla poster som uppfyller villkoren i SQL-uttrycket. Följande två exempel skillnad ingen och returnera 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 dubbletter i de markerade fälten. Värdena för varje fält i SELECT-uttrycket måste vara unikt för att ingå i frågans resultat. Flera anställda i tabellen anställda kan till exempel ha samma efternamn. Om två poster innehåller Andersson i fältet Efternamn returnerar följande SQL-uttryck bara en post som innehåller Svensson:

SELECT DISTINCT LastName
FROM Employees;

Om du utelämnar DISTINCT returnerar frågan båda posterna.

Om SELECT-satsen innehåller mer än ett fält, måste kombination av värden från alla fält vara unikt för att posten ska tas med i resultatet.

Resultatet av en fråga som använder DISTINCT är inte kan uppdateras och visar inte efterföljande ändringar som gjorts av andra användare.

DISTINCTROW

Utelämnar data baserat på fullständiga dubblettposter, inte bara duplicerade fält. Du kan till exempel skapa en fråga som kopplar ihop tabellerna Kunder och order på fältet CustomerID. Tabellen Kunder innehåller inga dubbletter CustomerID fält, men tabellen Order gör eftersom varje kund kan ha flera order. Följande SQL-uttryck visar hur du kan använda DISTINCTROW för att skapa en lista över företag som har minst en order men som inte har någon 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 ger denna fråga flera rader för varje företag som har fler än en order.

DISTINCTROW har effekt bara när du väljer fält från vissa, men inte alla av de tabeller som används i frågan. DISTINCTROW ignoreras om frågan innehåller endast en tabell, eller om du sparar från alla tabeller.

ÖVERSTA n [PROCENT]

Returnerar antalet poster som ligger längst upp eller ned i ett intervall som anges av en ORDER BY-satsen. Anta att du vill visa namnen på de översta 25 studenterna från klassen 1994:

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

Om du inte innehålla ORDER BY-sats returnerar att frågan en godtycklig uppsättning 25 poster från tabellen studenter som uppfyller WHERE-satsen.

Det ÖVERSTA predikatet Välj inte mellan identiska värden. I exemplet ovan om de 25: e och 26: e högsta medelbetyget är samma returneras 26 poster.

Du kan också använda det reserverade ordet PERCENT för att returnera en viss procentandel av poster som faller placeras i början eller slutet av ett intervall som anges av en ORDER BY-satsen. Anta att, i stället för överst 25-studenter du vill visa ned 10 procent av kursen:

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

Predikatet ASC anger lägsta värdena ska returneras. Värdet som följer TOP måste vara ett heltal.

TOP påverkar inte om frågan är kan uppdateras eller inte.

tabell

Namnet på den tabell från vilken posterna ska hämtas.



Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×