See on üks Access SQL-i puudutavatest artiklitest. Artiklis kirjeldatakse, kuidas kirjutada WHERE-klauslit ning tuuakse näiteid illustreerimaks erinevaid tehnikaid, mida saab WHERE-klausli juures kasutada.
SQL-lauses määratleb WHERE-klausel kriteeriumid, millele väljaväärtused peavad vastama kirjetel, mis sisaldavad päringutulemitesse kaasatavaid väärtusi.
Access SQL-i ülevaate leiate artiklist Accessi SQL: põhimõtted, sõnavara ja süntaks.
Selle artikli teemad
Tulemite piiramine kriteeriumide abil
Kui soovite kasutada andmeid päringus tagastatavate kirjete arvu piiramiseks, saate kasutada kriteeriumid. Päringukriteerium sarnaneb valemiga – see on string, mis võib koosneda väljaviidetest, tehtemärkidest ja konstantidest. Päringukriteeriumid on avaldis tüüp.
Järgmises tabelis on esitatud näidiskriteeriumid koos selgitustega nende töötamise kohta.
Kriteeriumid |
Kirjeldus |
>25 ja <50 |
Seda kriteeriumi rakendatakse numbriväljale (nt Hind või Kaupade_arv). See kaasab ainult need kirjed, milles väli Hind või KaupadeArv sisaldab 25-st suuremat ja 50-st väiksemat väärtust. |
DateDiff ("yyyy", [Sünniaeg], Date()) > 30 |
Seda kriteeriumi rakendatakse kuupäeva-/kellaajaväljale (nt Sünnikuupäev). Päringutulemisse kaasatakse ainult need kirjed, milles isiku sünniaja ja tänase päeva vahele jäävate aastate arv on suurem kui 30. |
Is Null |
Seda kriteeriumi saab rakendada igat tüüpi väljadele, kaasamaks need kirjed, milles väli on tühiväärtusega. |
Nagu eelnevast tabelist nähtub, võivad kriteeriumid üksteisest erineda olenevalt sellest, millist tüüpi andmeväljadele kriteeriumeid rakendatakse ja millised on teie vajadused. Mõned kriteeriumid on lihtsad ja põhinevad baastehtemärkidel ja -konstantidel. Teised on keerukamad, põhinevad funktsioonidel ja erilistel tehtemärkidel, ning sisaldavad väljaviiteid.
NB!: Kui välja kasutatakse kokkuvõttefunktsiooniga, ei saa te selle välja kriteeriumi WHERE-klausliga määrata. Kasutage selle asemel HAVING-klauslit, et määrata kokkuvõtteväljade kriteeriumid. Lisateavet leiate artiklitest Accessi SQL: põhimõtted, sõnavara ja süntaks ja HAVING-klausel.
WHERE-klausli süntaks
Päringukriteeriumeid kasutate WHERE-klausli SELECT-lauses.
WHERE-klauslil on järgmine tavaline süntaks:
WHERE field = criterion
Oletame näiteks, et soovite leida kliendi telefoninumbrit, kuid mäletate vaid, et tema perekonnanimi on Bagel. Selle asemel, et vaadata üle kõik teie andmebaasis leiduvad telefoninumbrid, saate kasutada tulemite piiramiseks ja hõlpsamaks soovitud telefoninumbri leidmiseks WHERE-klauslit. Eeldusel, et perekonnanimed on talletatud väljale nimega Perekonnanimi, kuvatakse teie WHERE-klausel järgmisel kujul:
WHERE [LastName]='Bagel'
Märkus.: Te ei pea WHERE-klausli kriteeriumide aluseks võtma väärtuste samaväärsust. Saate kasutada muid võrdlusmärke, nt suurem kui (>) või väiksem kui (<). Näiteks WHERE [Hind]>100.
WHERE-klausli kasutamine andmeallikate kombineerimiseks
Mõnikord on andmeallikate kombineerimisel tarvis aluseks võtta väljad, mis sisaldavad küll kattuvaid andmeid, kuid nende andmetüüp on erinev. Võib olla soovite näiteks võrrelda ühe tabeli välja, mille andmetüüp on „Arv“, teise tabeli väljaga, mille andmetüüp on „Tekst“.
Eri andmetüüpidega väljade vahel ei saa ühendusi luua. Eri andmetüüpidega väljade väärtustel põhinevate kahe andmeallika andmete kombineerimiseks tuleb luua WHERE-klausel, mis kasutab üht välja teise välja kriteeriumina, kasutades märksõna LIKE.
Võib olla soovite näiteks kasutada andmeid tabelitest Tabel1 ja Tabel2, kuid vaid juhul, kui välja Väli1 andmed (Tabel1 tekstiväli) vastavad välja Väli2 andmetele (Tabel2 arvuväli). Teie WHERE-klausel sarnaneks järgmisega:
WHERE field1 LIKE field2
Lisateavet WHERE-klauslis kasutatavate kriteeriumide loomisest leiate artiklist Päringukriteeriumide näited.