Toto je jeden zo súboru článkov o jazyku SQL programu Access. Tento článok uvádza spôsob, akým sa píše klauzula WHERE, a používa príklady na znázornenie rôznych postupov, ktoré môžete použiť v klauzule WHERE.
Klauzula WHERE v príkaze SQL určuje kritériá, ktoré musia hodnoty poľa splniť pre záznamy obsahujúce hodnoty, ktoré chcete zahrnúť do výsledkov dotazu.
Prehľad o jazyku SQL programu Access nájdete v článku Jazyk SQL programu Access: základné koncepty, slovník a syntax.
Obsah článku
Obmedzenie výsledkov pomocou kritérií
Ak chcete použiť údaje na obmedzenie počtu záznamov, ktoré sa vrátia v dotaze, môžete použiť kritériá. Kritérium dotazu je podobné vzorcu – ide o reťazec, ktorý sa môže skladať z odkazov na polia, operátorov a konštánt. Kritériá dotazu sú typu výraz.
Nasledujúca tabuľka uvádza niekoľko vzorových kritérií a vysvetľuje, ako fungujú.
Kritérium |
Popis |
>25 and <50 |
Toto kritérium sa používa pre pole typu Číslo, ako je napríklad Cena alebo JednotkyNaSklade. Do výsledku zahrnie iba tie záznamy, v ktorých pole Cena alebo JednotkyNaSklade obsahuje hodnotu väčšiu ako 25 a menšiu ako 50. |
DateDiff ("rrrr"; [DátumNarodenia], Dátum()) > 30 |
Toto kritérium sa používa na pole typu Dátum a čas, ako je napríklad DátumNarodenia. Do výsledkov dotazu sa zahrnú len záznamy, v ktorých je počet rokov medzi dátumom narodenia osoby a dnešným dátumom väčší ako 30. |
Is Null |
Toto kritérium možno použiť na ľubovoľný druh poľa na zobrazenie záznamov, v ktorých je hodnota poľa null. |
Ako sami vidíte v predchádzajúcej tabuľke, kritériá sa môžu navzájom líšiť v závislosti od typu údajov poľa, na ktoré sa kritériá vzťahujú, a vašich konkrétnych požiadaviek. Niektoré kritériá sú jednoduché a používajú základné operátory a konštanty. Iné sú zložité a používajú funkcie, špeciálne operátory a zahŕňajú odkazy na polia.
Dôležité: Ak sa pole používa s agregačnou funkciou, kritériá pre dané pole v klauzule WHERE nie je možné stanoviť. Namiesto toho môžete na stanovenie kritérií pre agregované polia použiť klauzulu HAVING. Ďalšie informácie nájdete v článkoch Jazyk SQL programu Access: základné koncepty, slovník a syntax a Klauzula HAVING.
Syntax klauzuly WHERE
V klauzule WHERE v príkaze SELECT sa používajú kritériá dotazu.
Klauzula WHERE má nasledujúcu základnú syntax:
WHERE field = criterion
Predpokladajme napríklad, že chcete telefónne číslo zákazníka, ale pamätajte len na to, že priezvisko zákazníka je Bagel. Namiesto zobrazenia všetkých telefónnych čísel v databáze môžete použiť klauzulu WHERE na obmedzenie výsledkov a uľahčenie vyhľadania požadovaného telefónneho čísla. Za predpokladu, že priezvisko je uložené v poli s názvom Priezvisko, klauzula WHERE sa zobrazí takto:
WHERE [LastName]='Bagel'
Poznámka: Pri kritériách v klauzule WHERE nie je potrebné vychádzať z ekvivalentnosti hodnôt. Môžete použiť iné operátory porovnávania, napríklad väčšie ako (>) alebo menšie ako (<). Napríklad: WHERE [cena]>100.
Použitie klauzuly WHERE na kombináciu údajových zdrojov
Môže sa stať, že budete chcieť kombinovať údajové zdroje na základe polí so zodpovedajúcimi údajmi, ktoré však nie sú rovnakého typu. Pole v jednej tabuľke môže mať napríklad číselný typ údajov a chcete ho porovnať s poľom v inej tabuľke, ktoré obsahuje textový typ údajov.
Spojenie medzi poľami s odlišnými typmi údajov nie je možné vytvoriť. Na kombináciu údajov z dvoch údajových zdrojov na základe hodnôt v poliach, ktoré obsahujú rôzne typy údajov, môžete použitím kľúčového slova LIKE vytvoriť klauzulu WHERE, ktorá použije jedno pole ako kritérium pre ďalšie pole.
Predpokladajme napríklad, že chcete použiť údaje z tabuľky1 a tabuľky2, ale len vtedy, keď sa údaje v poli1 (textové pole v tabuľke1) zhodujú s údajmi v poli2 (číselné pole v tabuľke2). Klauzula WHERE by mala vyzerať takto:
WHERE field1 LIKE field2
Ďalšie informácie o spôsobe vytvárania kritérií na použitie v klauzule WHERE nájdete v článku Príklady kritérií dotazu.