Bejelentkezés Microsoft-fiókkal
Jelentkezzen be, vagy hozzon létre egy fiókot.
Üdvözöljük!
Válasszon másik fiókot.
Több fiókja van
Válassza ki a bejelentkezéshez használni kívánt fiókot.
ALL, DISTINCT, DISTINCTROW, TOP predikátumok

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 Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER 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 LastName
FROM 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 CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER 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 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER 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 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER 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.

Hasznos volt ez az információ?

Mennyire elégedett a fordítás minőségével?
Mi volt hatással a felhasználói élményére?
Ha elküldi a visszajelzést, a Microsoft felhasználja azt a termékei és szolgáltatásai továbbfejlesztéséhez. Az informatikai rendszergazda képes lesz ezeket az adatokat összegyűjteni. Adatvédelmi nyilatkozat.

Köszönjük a visszajelzését!

×