SQL WHERE IN -lause

Sql Where In Lause



SQL:ssä voimme käyttää WHERE IN -lausetta suodattaaksemme tietyn tietokannan tulokset. WHERE IN -lauseen avulla voimme valita tietystä tietokannasta rivit, jotka vastaavat yhtä tai useampaa tietyn luettelon määritettyä arvoa.

Tässä opetusohjelmassa tutkimme WHERE IN -lausetta selvittääksemme, kuinka voimme käyttää sitä suodattamaan tulokset tietystä taulukosta tai tulosjoukosta.

SQL WHERE IN -lause

Seuraavassa näkyy WHERE IN -lauseen perussyntaksi SQL:ssä:







VALITSE sarake1, sarake2, ...
FROM taulukon_nimi
WHERE sarakkeen_nimi IN (arvo1, arvo2, ...);

Aloitamme perus 'select' -lauseella, jota seuraa sarakkeet, jotka haluamme sisällyttää tulosjoukkoon.



Seuraavaksi määritämme taulukon, josta haluamme noutaa tulokset. Lopuksi määritämme suodatusehdon käyttämällä WHERE-lausetta, jota seuraa sen sarakkeen nimi, johon haluamme suodattaa. IN-lauseen jälkeen määritämme listan arvoista, joita haluamme käyttää suodatuksessa.



Esimerkki 1: Suodata yksittäinen tulos

Jos haluat paremmin havainnollistaa WHERE IN -lauseen käyttöä, katsotaanpa esimerkkiä. Harkitse Sakilan näytetietokannan ”filmi”-taulukkoa.





Oletetaan, että haluamme hakea kaikki elokuvat, joiden luokitus on PG tai PG-13. Voimme käyttää WHERE IN -lausetta seuraavasti:

SELECT otsikko, julkaisuvuosi, luokitus
elokuvasta
WHERE luokitus IN ('PG');

Tässä tapauksessa tarjoamme luettelon yhdestä arvosta, jonka haluamme hakea IN-lauseessa.



Esimerkki 2: Suodata useita arvoja

Voimme myös määrittää useamman kuin yhden kohteen arvoluettelossa. Esimerkiksi, jos haluat hakea elokuvat luettelosta, jonka luokitus on PG ja PG-13, voimme suorittaa kyselyn seuraavasti:

SELECT otsikko, julkaisuvuosi, luokitus
elokuvasta
WHERE luokitus IN ('PG', 'PG-13');

Tuloksena oleva tulos on seuraava:

Esimerkki 3: Suodata alikyselyllä

Voimme myös käyttää WHERE IN -kohtaa alikyselyssä, jonka avulla voimme suodattaa tulokset pois tietystä tulosjoukosta.

Oletetaan, että haluamme suodattaa elokuvat kielen perusteella. Esimerkiksi elokuvien hakemiseksi englannin ja japanin kielellä voimme käyttää WHERE IN -kohtaa alikyselyssä seuraavasti:

SELECT otsikko, julkaisuvuosi, luokitus
FROM elokuvasta f
WHERE language_id IN (
SELECT language_id
FROM kielestä
WHERE nimi IN ('englanti', 'japani')
);

Tässä esimerkissä luomme alikyselyn, joka hakee 'language_id'-arvot englannin ja japanin kielelle 'languages'-taulukosta. Pääkyselyssä valitsemme elokuvat saatujen “language_id”-arvojen perusteella.

Johtopäätös

Tässä viestissä opimme työskentelemään WHERE IN -lauseen kanssa SQL:ssä suodattamaan pois tulokset, jotka vastaavat yhtä tai useampaa arvoa tietyssä luettelossa.