Určuje záznamy vybraté pomocou dotazov SQL.
Syntax
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENTO]]]
Tabuľka FROMPrí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:
|
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:
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:
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:
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:
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. |