ALL, DISTINCT, DISTINCTROW, TOP predikátumok
Applies ToMicrosoft 365-höz készült Access Access 2024 Access 2021 Access 2019 Access 2016

Sql-lekérdezésekkel kiválasztott rekordokat ad meg.

Szintaxis

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]FROM tábla

A predikátumokat tartalmazó SELECT utasítás a következő részekből áll:

Rész

Leírás

ALL

Feltételezzük, ha nem tartalmazza az egyik predikátumot. A Microsoft Access adatbázismotor az SQL-utasítás feltételeinek megfelelő összes rekordot kiválasztja. Az alábbi két példa egyenértékű, és az Employees tábla összes rekordjának visszaadása:

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

Kihagyja azokat a rekordokat, amelyek ismétlődő adatokat tartalmaznak a kijelölt mezőkben. Ahhoz, hogy a lekérdezés eredményei szerepeljenek, a SELECT utasításban felsorolt mezők értékeinek egyedinek kell lenniük. Előfordulhat például, hogy egy Alkalmazottak táblában több alkalmazott is ugyanazzal a vezetéknévvel rendelkezik. Ha két rekord tartalmazza Smitht a LastName mezőben, a következő SQL-utasítás csak egy olyan rekordot ad vissza, amely Tartalmazza Smitht:

SELECT DISTINCT LastNameFROM Employees;

Ha kihagyja a DISTINCT függvényt, ez a lekérdezés mindkét Smith-rekordot visszaadja.

Ha a SELECT záradék egynél több mezőt tartalmaz, az összes mező értékeinek egyedinek kell lenniük ahhoz, hogy egy adott rekord szerepeljen az eredmények között.

A DISTINCT függvényt használó lekérdezés kimenete nem frissíthető, és nem tükrözi a többi felhasználó későbbi módosításait.

DISTINCTROW

Kihagyja a teljes ismétlődő rekordokon alapuló adatokat, nem csak a duplikált mezőket. Létrehozhat például egy lekérdezést, amely a CustomerID mező Vevők és Rendelések tábláját kapcsolja össze. A Vevők tábla nem tartalmaz duplikált CustomerID mezőket, de a Rendelések tábla igen, mert minden ügyfél több megrendeléssel is rendelkezhet. Az alábbi SQL-utasítás bemutatja, hogyan hozhatja létre a DISTINCTROW segítségével azoknak a vállalatoknak a listáját, amelyek legalább egy megrendeléssel rendelkeznek, de a rendelésekkel kapcsolatos részletek nélkül:

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

Ha kihagyja a DISTINCTROW függvényt, ez a lekérdezés több sort hoz létre minden olyan vállalathoz, amely több megrendelést is kezel.

A DISTINCTROW csak akkor van hatással, ha a lekérdezésben használt táblák némelyikéből választ mezőket, de nem az összeset. A DISTINCTROW függvény figyelmen kívül lesz hagyva, ha a lekérdezés csak egy táblát tartalmaz, vagy ha az összes tábla mezőit kimenetként adja meg.

TOP n [PERCENT]

Bizonyos számú rekordot ad vissza, amelyek egy ORDER BY záradék által meghatározott tartomány tetején vagy alján esnek. Tegyük fel, hogy az 1994-ből származó első 25 tanuló nevét szeretné megkapni:

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

Ha nem adja meg az ORDER BY záradékot, a lekérdezés egy tetszőleges 25 rekordot ad vissza a Students táblából, amelyek megfelelnek a WHERE záradéknak.

A TOP predikátum nem az egyenlő értékek közül választ. Az előző példában, ha a huszonötödik és a huszonhatodik legmagasabb osztályzatú pont átlaga megegyezik, a lekérdezés 26 rekordot ad vissza.

A PERCENT fenntartott szóval a rekordok bizonyos százalékát is visszaadhatja, amelyek az ORDER BY záradékban megadott tartomány tetejére vagy aljára esnek. Tegyük fel, hogy a 25 legjobb tanuló helyett az osztály alsó 10 százalékát szeretné megkapni:

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

Az ASC-predikátum az alsó értékek visszaadását adja meg. A TOP értéket követő értéknek aláíratlan egész számnak kell lennie.

A TOP nincs hatással arra, hogy a lekérdezés frissíthető-e.

tábla

Annak a táblának a neve, amelyből a rekordokat lekérdezi.

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.

A közösségek segítségével kérdéseket tehet fel és válaszolhat meg, visszajelzést adhat, és részletes ismeretekkel rendelkező szakértőktől hallhat.