SQL WHERE IN-klausul

Sql Where In Klausul



I SQL kan vi bruge WHERE IN-sætningen til at bortfiltrere resultaterne i en given database. WHERE IN-sætningen giver os mulighed for at vælge de rækker fra en given database, der matcher en eller flere af de angivne værdier fra en given liste.

I denne øvelse vil vi udforske WHERE IN-sætningen for at finde ud af, hvordan vi kan bruge den til at filtrere resultaterne fra en given tabel eller et givet resultatsæt.

SQL WHERE IN-klausul

Det følgende viser den grundlæggende syntaks for WHERE IN-sætningen i SQL:







VÆLG kolonne1, kolonne2, ...
FRA tabelnavn
WHERE kolonnenavn IN (værdi1, værdi2, ...);

Vi starter med en grundlæggende 'vælg'-erklæring efterfulgt af de kolonner, som vi ønsker at inkludere i resultatsættet.



Dernæst specificerer vi den tabel, som vi ønsker at hente resultaterne fra. Til sidst specificerer vi filterbetingelsen ved hjælp af WHERE-sætningen efterfulgt af navnet på den kolonne, som vi ønsker at filtrere på. Efter IN-sætningen angiver vi en værdiliste, som vi vil bruge til filtrering.



Eksempel 1: Filtrer et enkelt resultat

For bedre at demonstrere, hvordan man bruger WHERE IN-sætningen, lad os se på et eksempel. Overvej 'film'-tabellen fra Sakila-eksempeldatabasen.





Antag, at vi ønsker at hente alle filmene med en rating på PG eller PG-13. Vi kan bruge WHERE IN-sætningen som følger:

SELECT titel, release_year, rating
FRA film
WHERE rating IN ('PG');

I dette tilfælde giver vi en liste over en enkelt værdi, som vi ønsker at hente i IN-sætningen.



Eksempel 2: Filtrer flere værdier

Vi kan også angive mere end ét element i værdilisten. For for eksempel at hente filmene med en liste med en rating på PG og PG-13, kan vi køre forespørgslen som følger:

SELECT titel, release_year, rating
FRA film
WHERE rating IN ('PG', 'PG-13');

Det resulterende output er som følger:

Eksempel 3: Filtrer med underforespørgsel

Vi kan også bruge WHERE IN i en underforespørgsel, som kan give os mulighed for at filtrere resultaterne fra et givet resultatsæt.

Antag, at vi ønsker at filtrere filmene baseret på sproget. For at hente filmene på engelsk og japansk kan vi f.eks. bruge WHERE IN i en underforespørgsel som følger:

SELECT titel, release_year, rating
FRA film f
WHERE language_id IN (
VÆLG sprog_id
FRA sprog
WHERE name IN ('engelsk', 'japansk')
);

I dette eksempel opretter vi en underforespørgsel, der henter 'language_id'-værdierne for de engelske og japanske sprog fra 'languages'-tabellen. I hovedforespørgslen vælger vi filmene baseret på de resulterende 'language_id'-værdier.

Konklusion

I dette indlæg lærte vi, hvordan man arbejder med WHERE IN-sætningen i SQL for at bortfiltrere de resultater, der matcher en enkelt eller flere værdier på en given liste.