Toto je jeden ze sady článků o jazyku SQL v Accessu. Tento článek popisuje, jak se používá klauzule WHERE, a pomocí příkladů ilustruje různé techniky, které můžete v klauzuli WHERE použít.
V příkazu SQL klauzule WHERE určuje kritéria, která hodnoty polí musí splňovat u záznamů obsahujících hodnoty, které se mají zahrnout do výsledků dotazu.
Přehled jazyka SQL v Accessu najdete v článku Jazyk SQL v Accessu: základní koncepty, slovník a syntaxe.
V tomto článku
Omezení výsledků pomocí kritérií
Pokud chcete použít data k omezení počtu záznamů, které se vrací v dotazu, můžete použít kritéria. Kritérium dotazu se podobá vzorci – jedná se o řetězec, který může obsahovat odkazy na pole, operátory a konstanty. Kritéria dotazu jsou typem výrazu.
Následující tabulka obsahuje několik ukázkových kritérií s vysvětlením toho, jak fungují.
Kritérium |
Popis |
>25 and <50 |
Toto kritérium se dá použít u pole typu Číslo, jako je třeba pole Cena nebo JednotkyNaSkladě. Zahrnuje jenom záznamy, ve kterých pole Cena nebo JednotkyNaSkladě obsahuje hodnotu větší než 25 a menší než 50. |
DateDiff ("rrrr", [DatumNarození], Date()) > 30 |
Toto kritérium se dá použít u pole typu Datum a čas, jako je třeba pole DatumNarození. Do výsledku dotazu se zahrnou jenom záznamy, ve kterých je počet roků mezi datem narození dané osoby a aktuálním datem větší než 30. |
Is Null |
Toto kritérium se dá použít u všech typů polí k zobrazení záznamů s hodnotou pole null. |
Jak je patrné z předchozí tabulky, kritéria můžou v závislosti na datovém typu pole, u kterého se použijí, a na konkrétních požadavcích vypadat různě. Některá kritéria jsou jednoduchá a používají se v nich základní operátory a konstanty. Jiná jsou složitá a používají funkce, speciální operátory a obsahují odkazy na pole.
Důležité informace: Pokud se pole použije s agregační funkcí, nemůžete pro toto pole zadat kritéria v klauzuli WHERE. Místo toho musíte k zadání kritérií agregovaných polí použít klauzuli HAVING. Další informace najdete v článcích Jazyk SQL v Accessu: základní koncepty, slovník a syntaxe a Klauzule HAVING.
Syntaxe klauzule WHERE
V klauzuli WHERE v příkazu SELECT můžete použít kritéria dotazu.
Klauzule WHERE má následující základní syntaxi:
WHERE field = criterion
Předpokládejme například, že chcete získat telefonní číslo zákazníka, ale pamatujete si pouze to, že příjmení zákazníka je Novák. Místo procházení všech telefonních čísel v databázi můžete pomocí klauzule WHERE omezit výsledky a usnadnit si vyhledání požadovaného telefonního čísla. Za předpokladu, že příjmení jsou uložená v poli s názvem Příjmení, bude klauzule WHERE vypadat takto:
WHERE [LastName]='Bagel'
Poznámka: Kritéria v klauzuli WHERE nemusí být založena na ekvivalenci hodnot. Můžete použít i jiné porovnávací operátory, jako jsou větší než (>) nebo menší než (<). Příklad: WHERE [Cena]>100.
Kombinování zdrojů dat pomocí klauzule WHERE
Někdy se může stát, že chcete zkombinovat zdroje dat na základě polí, která sice mají shodná data, ale různé datové typy. Například v jedné tabulce může mít pole datový typ Číslo a vy ho chcete porovnat s polem v jiné tabulce, které má datový typ Text.
Nelze vytvořit spojení mezi poli, která mají různé datové typy. Pokud chcete zkombinovat data ze dvou zdrojů dat na základě hodnot v polích s různými datovými typy, vytvořte klauzuli WHERE, která používá jedno pole jako kritérium pro druhé pole pomocí klíčového slova LIKE.
Předpokládejme například, že chcete použít data z tabulky1 a tabulky2, ale jenom v případě, že data v poli1 (textovém poli v tabulce1) odpovídají datům v poli2 (číselném poli v tabulce2). Klauzule WHERE by vypadala nějak takto:
WHERE field1 LIKE field2
Další informace o vytváření kritérií pro použití v klauzuli WHERE najdete v článku Příklady kritérií dotazu.