Určuje, pro které záznamy z tabulek uvedených v klauzuli FROM platí příkaz SELECT, UPDATE nebo DELETE.
Syntaxe
SELECT seznam_polí
FROM tabulkový_výraz WHERE kritériaPříkaz SELECT obsahující klauzuli WHERE má tyto části:
Část |
Popis |
seznam_polí |
Název pole nebo polí, která se mají načíst, a dále veškeré aliasy názvů polí, výběrové predikáty (ALL, DISTINCT, DISTINCTROW nebo TOP) nebo jiné možnosti příkazu SELECT |
tabulkový_výraz |
Název tabulky nebo názvy tabulek, ze kterých se data načítají. |
kritéria |
Výraz, kterému musí záznamy vyhovovat, aby byly zahrnuté do výsledků dotazu |
Poznámky
Databázový stroj Microsoft Access vybere záznamy, které splňují podmínky uvedené v klauzuli WHERE. Pokud klauzuli WHERE nezadáte, vrátí dotaz všechny řádky z tabulky. Pokud v dotazu zadáte více než jednu tabulku a nezadáte klauzuli WHERE nebo klauzuli JOIN , dotaz vygeneruje kartézský součin tabulek.
Klauzule WHERE je nepovinná, ale pokud je uvedena, musí následovat za klauzulí FROM. Můžete třeba vybrat všechny zaměstnance z oddělení prodeje (WHERE Dept = 'Sales') nebo všechny zákazníky ve věku od 18 do 30 let (WHERE Age Between 18 And 30).
Pokud k SQL operacím spojení několika tabulek nepoužijete klauzuli JOIN, nebude výsledný objekt Recordset aktualizovatelný.
Klauzule WHERE se podobá klauzuli HAVING. Klauzule WHERE určuje, které záznamy se mají vybrat. Když už jsou záznamy seskupené pomocí klauzule GROUP BY, klauzule HAVING určí, které záznamy se mají zobrazit.
Pomocí klauzule WHERE vyloučíte záznamy, které nemá klauzule GROUP BY seskupovat.
Které záznamy má příkaz SQL vrátit, určíte pomocí různých výrazů. Například následující příkaz SQL vybere všechny zaměstnance s platy většími než 21 000:
SELECT LastName, Salary FROM Employees WHERE Salary > 21000;
Klauzule WHERE může obsahovat až 40 výrazů spojených logickými operátory, například operátory And a Or.
Když zadáváte název pole obsahující mezeru nebo interpunkci, uzavřete ho do hranatých závorek ([ ]). Třeba tabulka s informacemi o zákaznících může obsahovat informace o určitých zákaznících:
SELECT [Customer’s Favorite Restarant]
Když zadáte argument kritéria , musí být literály kalendářních dat v americkém formátu, i když nepoužíváte americkou verzi databázového stroje Microsoft Accessu. Například 10. května 1996 je napsáno 5. 10. 96 ve Spojeném království a 5/10/96 ve Spojených státech. Nezapomeňte své datové literály uzavřít se znaménkem čísla (#), jak je znázorněno v následujících příkladech.
Když chcete v databázi ve Spojeném království najít záznamy s datem 10. května 1996, musíte použít tento příkaz SQL:
SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;
Můžete také použít funkci DateValue, která se řídí mezinárodním nastavením z Microsoft Windows®. Například ve Spojených státech byste použili tento kód:
SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');
A ve Spojeném království byste použili tento kód:
SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');
Poznámka: Pokud sloupec, na který se odkazuje v řetězci kritérií, je typu GUID, používá se u výrazu kritérií trochu jiná syntaxe:
WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}
Používejte vnořené složené závorky a pomlčky naznačeným způsobem.