I denne opplæringen vil vi utforske WHERE IN-klausulen for å finne ut hvordan vi kan bruke den til å filtrere ut resultatene fra en gitt tabell eller et gitt resultatsett.
SQL WHERE IN-klausul
Følgende viser den grunnleggende syntaksen til WHERE IN-leddet i SQL:
VELG kolonne1, kolonne2, ...
FRA tabellnavn
WHERE kolonnenavn IN (verdi1, verdi2, ...);
Vi starter med en grunnleggende 'velg'-setning etterfulgt av kolonnene som vi ønsker å inkludere i resultatsettet.
Deretter spesifiserer vi tabellen som vi ønsker å hente resultatene fra. Til slutt spesifiserer vi filterbetingelsen ved å bruke WHERE-leddet etterfulgt av navnet på kolonnen vi ønsker å filtrere på. Etter IN-leddet spesifiserer vi en verdiliste som vi vil bruke for filtrering.
Eksempel 1: Filtrer et enkelt resultat
For bedre å demonstrere hvordan du bruker WHERE IN-klausulen, la oss se på et eksempel. Tenk på 'film'-tabellen fra Sakila-eksempeldatabasen.
Anta at vi ønsker å hente alle filmene med en vurdering på PG eller PG-13. Vi kan bruke WHERE IN-klausulen som følger:
SELECT tittel, release_year, ratingFRA film
WHERE-vurdering IN ('PG');
I dette tilfellet gir vi en liste over en enkelt verdi som vi ønsker å hente i IN-klausulen.
Eksempel 2: Filtrer flere verdier
Vi kan også spesifisere mer enn ett element i listen over verdier. For eksempel, for å hente filmene med en liste med vurderingen PG og PG-13, kan vi kjøre spørringen som følger:
SELECT tittel, release_year, ratingFRA film
WHERE rangering IN ('PG', 'PG-13');
Den resulterende utgangen er som følger:
Eksempel 3: Filtrer med underspørring
Vi kan også bruke WHERE IN i en underspørring som kan tillate oss å filtrere ut resultatene fra et gitt resultatsett.
Anta at vi ønsker å filtrere filmene basert på språket. For å hente filmene på engelsk og japansk kan vi for eksempel bruke WHERE IN i en underspørring som følger:
SELECT tittel, release_year, ratingFRA film f
WHERE language_id IN (
SELECT language_id
FRA språk
WHERE name IN ('engelsk', 'japansk')
);
I dette eksemplet lager vi en underspørring som henter «language_id»-verdiene for engelsk og japansk fra «languages»-tabellen. I hovedspørringen velger vi filmene basert på de resulterende 'language_id'-verdiene.
Konklusjon
I dette innlegget lærte vi å jobbe med WHERE IN-leddet i SQL for å filtrere ut resultatene som samsvarer med en enkelt eller flere verdier i en gitt liste.