Určuje záznamy vybrané pomocí dotazů SQL.
Syntaxe
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
Tabulka FROMPříkaz SELECT obsahující tyto predikáty má následující části:
Část |
Popis |
ALL |
Předpokládá se, pokud nezahrnete jeden z predikátů. Databázový stroj Microsoft Access vybere všechny záznamy, které splňují podmínky v příkazu SQL. Následující dva příklady jsou ekvivalentní a vrátí všechny záznamy z tabulky Employees:
|
DISTINCT |
Vynechá záznamy, které obsahují duplicitní data ve vybraných polích. Aby bylo možné zahrnout do výsledků dotazu, musí být hodnoty pro každé pole uvedené v příkazu SELECT jedinečné. Například několik zaměstnanců uvedených v tabulce Zaměstnanci může mít stejné příjmení. Pokud dva záznamy obsahují v poli Příjmení Smitha, vrátí následující příkaz SQL pouze jeden záznam, který obsahuje Smith:
Pokud funkci DISTINCT vynecháte, vrátí tento dotaz oba záznamy Smithe. Pokud klauzule SELECT obsahuje více než jedno pole, musí být kombinace hodnot ze všech polí jedinečná, aby se daný záznam zahrnul do výsledků. Výstup dotazu, který používá distinct, není aktualizovatelný a neodráží následné změny provedené jinými uživateli. |
DISTINCTROW |
Vynechá data založená na celých duplicitních záznamech, ne jenom na duplicitních polích. Můžete například vytvořit dotaz, který spojí tabulky Customers (Zákazníci) a Orders (Objednávky) v poli CustomerID (ID zákazníka). Tabulka Zákazníci neobsahuje žádná duplicitní pole CustomerID, ale tabulka Orders ano, protože každý zákazník může mít mnoho objednávek. Následující příkaz SQL ukazuje, jak můžete pomocí funkce DISTINCTROW vytvořit seznam společností, které mají alespoň jednu objednávku, ale bez jakýchkoli podrobností o těchto objednávkách:
Pokud nástroj DISTINCTROW vynecháte, vytvoří tento dotaz více řádků pro každou společnost, která má více než jednu objednávku. Funkce DISTINCTROW má vliv pouze v případě, že vyberete pole z některých, ale ne všech tabulek použitých v dotazu. Funkce DISTINCTROW se ignoruje, pokud dotaz obsahuje pouze jednu tabulku nebo pokud je výstupem polí ze všech tabulek. |
HORNÍ n [PROCENTO] |
Vrátí určitý počet záznamů, které spadají do horní nebo dolní části rozsahu určeného klauzulí ORDER BY. Předpokládejme, že chcete jména 25 nejlepších studentů ze třídy v roce 1994:
Pokud nezadáte klauzuli ORDER BY, dotaz vrátí libovolnou sadu 25 záznamů z tabulky Students, které splňují klauzuli WHERE. Predikát TOP si nevybírejte mezi stejnými hodnotami. V předchozím příkladu platí, že pokud je průměr dvacátého pátého a dvacátého šestého nejvyššího stupně stejný, vrátí dotaz 26 záznamů. Pomocí rezervovaného slova PERCENT můžete také vrátit určité procento záznamů, které spadají do horní nebo dolní části rozsahu určeného klauzulí ORDER BY. Předpokládejme, že místo prvních 25 studentů potřebujete posledních 10 procent předmětu:
Predikát ASC určuje návrat nejnižších hodnot. Hodnota za hodnotou TOP musí být celé číslo bez znaménka. FUNKCE TOP nemá vliv na to, jestli je dotaz aktualizovatelný. |
tabulka |
Název tabulky, ze které jsou načítány záznamy. |