Tämä artikkeli kuuluu Access SQL:ää käsittelevään artikkelisarjaan. Tässä artikkelissa annetaan ohjeet WHERE-lauseen kirjoittamiseen sekä esimerkkejä eri tekniikoista WHERE-lauseiden käyttämiseen.
SQL-lausekkeessa WHERE-lause määrittää ehdot, jotka kenttien arvojen on täytettävä arvot sisältävissä tietueissa, jotta ne sisällytetään kyselyn tuloksiin.
Jos haluat lukea yleiskatsauksen Access SQL:stä, lue ohjeartikkeli Access SQL: peruskäsitteet, sanasto ja syntaksi.
Artikkelin sisältö
Tulosten rajaaminen ehdoilla
Kun haluat rajoittaa kyselyssä palautettavien tietueiden määrää, voit käyttää ehto-ominaisuutta. Kyselyn ehto muistuttaa kaavaa: se on merkkijono, joka voi sisältää kenttäviittauksia, operaattoreita ja vakioita. Kyselyehdot ovat lauseketyyppi.
Seuraavassa taulukossa luetellaan joitakin esimerkkejä ehdoista ja kerrotaan, kuinka ne toimivat.
Ehto |
Kuvaus |
>25 and <50 |
Tämä ehto koskee lukukenttää, kuten Hinta- tai YksiköitäVarastossa-kenttää. Kyselyn tulokseen sisällytetään vain ne tietueet, joiden Hinta- tai YksiköitäVarastossa-kenttä sisältää arvon, joka on suurempi kuin 25 ja pienempi kuin 50. |
DateDiff ("yyyy", [Syntymäpv], Date()) > 30 |
Tämä ehto koskee päivämäärä- ja aikakenttää, kuten Syntymäpv. Vain tietueet, joissa vuosien määrä henkilönsyntymäpäivän ja kuluvan päivän välillä on suurempi kuin 30, sisällytetään hakutulokseen. |
Is Null |
Tätä ehtoa voidaan käyttää kaikissa kenttätyypeissä, ja sen avulla voidaan näyttää tietueet, joissa kentän arvo on Null. |
Kuten edellisestä taulukosta näkyy, ehdot voivat olla hyvin erinäköisiä sen mukaan, mikä kentän tietotyyppi on ja mitä tarpeita sinulla on. Jotkin ehdot ovat yksinkertaisia, ja niissä käytetään perusoperaattoreita ja vakioita. Jotkin ehdot ovat monimutkaisia, ja niissä käytetään funktioita, erikoisoperaattoreita ja kenttäviittauksia.
Tärkeää: Jos kenttää käytetään koostefunktion kanssa, kentälle ei voi määrittää ehtoja WHERE-lauseella. Sen sijaan koostettujen kenttien ehdot määritetään HAVING-lauseella. Lisätietoja on artikkeleissa Access SQL: peruskäsitteet, sanasto ja syntaksi ja HAVING-lause.
WHERE-lauseen syntaksi
Kyselyehtoja käytetään SELECT-lausekkeen WHERE-lauseessa.
WHERE-lauseella on seuraava perussyntaksi:
WHERE field = criterion
Oletetaan, että haluat asiakkaan puhelinnumeron, mutta muistat vain asiakkaan sukunimen, joka on Bagel. Sen sijaan, että tutkisit tietokannan kaikki puhelinnumerot, voit rajata tuloksia WHERE-lauseella ja helpottaa halutun puhelinnumeron löytämistä. Oletetaan, että sukunimet tallennetaan kenttään nimeltä Sukunimi, joten WHERE-lause on seuraavanlainen:
WHERE [LastName]='Bagel'
Huomautus: WHERE-lauseen ehtojen ei tarvitse pohjautua arvojen vastaavuuteen. Voit käyttää muita vertailuoperaattoreita, kuten suurempi kuin (>) tai pienempi kuin (<). Esimerkiksi WHERE [Hinta]>100.
WHERE-lauseen käyttäminen tietolähteiden yhdistämiseen
Joskus haluat ehkä yhdistää tietolähteitä niiden kenttien perusteella, joiden tiedot vastaavat toisiaan, mutta joiden tietotyyppi on eri. Toisessa taulukossa voi esimerkiksi olla kenttä, jonka tietotyyppi on Luku, ja haluat verrata kyseistä kenttää toisessa taulukossa olevaan kenttään, jonka tietotyyppi on Teksti.
Et voi liitosta eri tietotyyppiä olevien kenttien välille. Jos haluat yhdistää tiedot kahdesta tietolähteestä niiden kenttäarvojen perusteella, joilla on eri tietotyypit, luo WHERE-lause, jossa yhtä kenttää käytetään toisen kentän ehtona LIKE-avainsanalla.
Oletetaan esimerkiksi, että haluat käyttää tietoja taulukosta 1 ja taulukosta 2, mutta vain silloin, kun kentän 1 tiedot (taulukon 1 tekstikenttä) vastaavat kentän 2 tietoja (taulukon 2 lukukenttä). WHERE-lause näyttää tällöin seuraavankaltaiselta:
WHERE field1 LIKE field2
Lisätietoja WHERE-lauseessa käytettävien ehtojen luomisesta on artikkelissa Esimerkkejä kyselyjen ehdoista.