Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.
Predikáty ALL, DISTINCT, DISTINCTROW, TOP

Určuje záznamy vybraté pomocou dotazov SQL.

Syntax

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENTO]]]
Tabuľka FROM

Príkaz SELECT obsahujúci tieto predikáty má nasledujúce časti:

Časť

Popis

ALL

Predpokladá sa, že ak nezahrniete jeden z predikátov. Databázový stroj programu Microsoft Access vyberie všetky záznamy, ktoré spĺňajú podmienky v príkaze SQL. Nasledujúce dva príklady sú rovnocenné a vracajú všetky záznamy z tabuľky Zamestnanci:

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

DISTINCT

Vynechá záznamy, ktoré vo vybratých poliach obsahujú duplicitné údaje. Ak chcete byť zahrnutí do výsledkov dotazu, hodnoty pre každé pole uvedené v príkaze SELECT musia byť jedinečné. Niekoľko zamestnancov uvedených v tabuľke Zamestnanci môže mať napríklad rovnaké priezvisko. Ak v poli Priezvisko obsahujú kováč dva záznamy, nasledujúci príkaz SQL vráti iba jeden záznam, ktorý obsahuje smitha:

SELECT DISTINCT LastName
FROM Employees;

Ak vynecháte funkciu DISTINCT, tento dotaz vráti oba Smithove záznamy.

Ak klauzula SELECT obsahuje viac ako jedno pole, kombinácia hodnôt zo všetkých polí musí byť jedinečná, aby sa daný záznam zahrnul do výsledkov.

Výstup dotazu, ktorý používa funkciu DISTINCT, nie je aktualizovateľný a neodráža následné zmeny vykonané inými používateľmi.

DISTINCTROW

Vynechá údaje založené na celých duplicitných záznamoch, nielen duplicitných poliach. Môžete napríklad vytvoriť dotaz, ktorý spojí tabuľky Zákazníci a Objednávky v poli IdZákazníka. Tabuľka Zákazníci neobsahuje žiadne duplicitné polia CustomerID, ale tabuľka Objednávky je, pretože každý zákazník môže mať veľa objednávok. Nasledujúci príkaz SQL ukazuje, ako môžete použiť funkciu DISTINCTROW na vytvorenie zoznamu spoločností, ktoré majú aspoň jednu objednávku, ale bez akýchkoľvek podrobností o týchto objednávkach:

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

Ak vynecháte funkciu DISTINCTROW, tento dotaz vytvorí viacero riadkov pre každú spoločnosť, ktorá má viac ako jednu objednávku.

Funkcia DISTINCTROW sa prejaví iba vtedy, keď vyberiete polia z niektorých, ale nie všetkých tabuliek použitých v dotaze. Funkcia DISTINCTROW sa ignoruje, ak dotaz obsahuje iba jednu tabuľku alebo ak vykonávate výstupné polia zo všetkých tabuliek.

TOP n [PERCENTO]

Vráti určitý počet záznamov, ktoré spadajú do hornej alebo dolnej časti rozsahu určeného klauzulou ORDER BY. Predpokladajme, že chcete mená 25 najlepších študentov z triedy roku 1994:

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

Ak nezahrniete klauzulu ORDER BY, dotaz vráti ľubovoľnú množinu 25 záznamov z tabuľky Študenti, ktoré spĺňajú klauzulu WHERE.

Predikát TOP nevyberá medzi rovnakými hodnotami. V predchádzajúcom príklade platí, že ak je priemer dvadsiateho piateho a dvadsiateho šiesteho najvyššieho stupňa rovnaký, dotaz vráti 26 záznamov.

Vyhradené slovo PERCENT môžete použiť aj na vrátenie určitého percenta záznamov, ktoré spadajú do hornej alebo dolnej časti rozsahu určeného klauzulou ORDER BY. Predpokladajme, že namiesto 25 najlepších študentov chcete posledných 10 percent triedy:

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

Predikát ASC určuje vrátenie posledných hodnôt. Hodnota, ktorá nasleduje za top, musí byť celé číslo, ktoré nie je zapísané.

Funkcia TOP neovplyvňuje, či je dotaz aktualizovateľný.

tabuľka

Názov tabuľky, z ktorej sú načítané záznamy.



Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×