WHERE záradék

Meghatározza, hogy a FROM záradékban felsorolt táblák mely rekordjait érintik a SELECT, UPDATE vagy DELETE utasítások.

Szintaxis

SELECT mezőlista

FROM táblanév

WHERE feltétel;

A WHERE záradékot tartalmazó SELECT utasítás:

Elem Leírás
mezőlista A visszakeresendő mező vagy mezők neve az alias nevükkel együtt, a predikátumai (ALL, DISTINCT, DISTINCTROW és TOP) vagy a SELECT utasítás más beállításai.
táblanév A tábla vagy táblák neve, amelyekben adatokat szeretnénk visszakeresni.
feltétel Ez a feltétel-kifejezés szabja meg, hogy melyik rekord kerülhet be a lekérdezés végeredményébe.

Megjegyzés

A Microsoft Jet adatbázis-motor kiválasztja azokat a rekordokat, amelyek megfelelnek a WHERE záradék feltételeinek. Ha nem használjuk a WHERE záradékot, a tábla minden sora bekerül a lekérdezésbe. Ha a lekérdezésben több táblát is megadunk, és nem használjuk a WHERE vagy a JOIN záradékot, akkor a lekérdezés végeredményeként a táblák Descartes-szorzatát kapjuk.

A WHERE záradék elhagyható, de ha használjuk, a FROM záradékot kell követnie. Például kiválaszthatjuk az eladási részleg minden alkalmazottját (WHERE Osztály = 'Eladás') vagy minden 18 és 30 év közötti ügyfelet (WHERE Életkor Between 18 And 30).

Ha több tábla esetén nem használjuk az illesztés műveletet végrehajtó JOIN záradékot, akkor az eredményként kapott Recordset objektum nem frissíthető.

A WHERE hasonló a HAVING záradékhoz. A WHERE meghatározza, hogy mely rekordok legyenek kiválasztva. Ehhez hasonlóan, ha a rekordok csoportosítva vannak a GROUP BY záradékkal, a HAVING záradék megadja, hogy mely rekordok legyenek megjelenítve.

Használjuk a WHERE záradékot azon rekordok kizárására, amelyeket nem akarunk csoportosítani a GROUP BY záradékkal.

Különféle kifejezések használatával megadhatjuk, hogy az SQL mely rekordokat adja vissza. Például a következő utasítás kiválaszt minden olyan alkalmazottat, akinek az éves fizetése 2 millió forint felett van:

SELECT [Név], Fizetés

FROM Alkalmazottak

WHERE Fizetés > 2000000;

A WHERE záradék 40, egymással logikailag (például az And és az Or műveletekkel) összekapcsolt kifejezést tartalmazhat.

Ha olyan nevet használunk, amely szóközt vagy pontot tartalmaz, zárjuk szögletes zárójelbe ( [ ] ). Az ügyfél információs tábla például tartalmazhat adatokat meghatározott ügyfelekről:

SELECT [Az ügyfél kedvenc étterme]

A feltétel argumentumban a dátumnak amerikai formátumúnak kell lenni, még akkor is, ha nem az amerikai Microsoft Jet adatbázis-motor rendszert használjuk. 1996.május 10. például az amerikai formátum szerint 5/10/96. Ne feledkezzünk meg arról, hogy a dátumot kettős keresztek (#) közé zárjuk, mint a következő példában.

Az 1996 május 10.-i rekordokat a következő SQL utasítással lehet megtalálni:

SELECT *

FROM Rendelések

WHERE [Szállítás dátuma] = #5/10/96#;

A DateValue függvényt is használhatjuk, ami felismeri a Microsoft Windows nemzetközi beállításai. Például amerikai beállításnál:

SELECT *

FROM Rendelések

WHERE [Szállítás dátuma] = DateValue('5/10/96');

Magyar beállításnál:

SELECT *

FROM Rendelések

WHERE [Szállítás dátuma] = DateValue('96.5.10.');

Megjegyzés

Ha a feltétel karakterlánc GUID típusú oszlopra hivatkozik, akkor a feltétel kifejezés egy szintaxisa ettől egy kicsit eltérő:

WHERE Kópiakód = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Ne felejtkezzünk el a zárójelekről és a kötőjelekről, ahogy az a fenti példában ki van téve.