SQL WHERE IN-klausul

Sql Where In Klausul



I SQL kan vi använda WHERE IN-satsen för att filtrera bort resultaten i en given databas. WHERE IN-satsen låter oss välja de rader från en given databas som matchar ett eller flera av de angivna värdena från en given lista.

I den här handledningen kommer vi att utforska WHERE IN-satsen för att upptäcka hur vi kan använda den för att filtrera bort resultaten från en given tabell eller resultatuppsättning.

SQL WHERE IN-klausul

Följande visar den grundläggande syntaxen för WHERE IN-satsen i SQL:







VÄLJ kolumn1, kolumn2, ...
FRÅN tabellnamn
WHERE kolumnnamn IN (värde1, värde2, ...);

Vi börjar med en grundläggande 'select'-sats följt av kolumnerna som vi vill inkludera i resultatuppsättningen.



Därefter anger vi tabellen från vilken vi vill hämta resultaten. Slutligen anger vi filtervillkoret med hjälp av WHERE-satsen följt av namnet på kolumnen som vi vill filtrera på. Efter IN-satsen anger vi en värdelista som vi vill använda för filtrering.



Exempel 1: Filtrera ett enstaka resultat

För att bättre visa hur man använder WHERE IN-satsen, låt oss titta på ett exempel. Tänk på 'film'-tabellen från Sakilas exempeldatabas.





Anta att vi vill hämta alla filmer med betyget PG eller PG-13. Vi kan använda WHERE IN-satsen enligt följande:

SELECT title, release_year, rating
FRÅN film
WHERE rating IN ('PG');

I det här fallet tillhandahåller vi en lista med ett enda värde som vi vill hämta i IN-satsen.



Exempel 2: Filtrera flera värden

Vi kan också ange mer än ett objekt i värdelistan. Till exempel, för att hämta filmerna med en lista med betyget PG och PG-13, kan vi köra frågan enligt följande:

SELECT title, release_year, rating
FRÅN film
WHERE rating IN ('PG', 'PG-13');

Resultatet är som följer:

Exempel 3: Filtrera med underfråga

Vi kan också använda WHERE IN i en underfråga som kan tillåta oss att filtrera bort resultaten från en given resultatuppsättning.

Anta att vi vill filtrera filmerna baserat på språket. För att till exempel hämta filmerna på engelska och japanska kan vi använda WHERE IN i en underfråga enligt följande:

SELECT title, release_year, rating
FRÅN film f
WHERE language_id IN (
SELECT language_id
FRÅN språket
WHERE name IN ('engelska', 'japanska')
);

I det här exemplet skapar vi en underfråga som hämtar 'language_id'-värdena för de engelska och japanska språken från 'languages'-tabellen. I huvudfrågan väljer vi filmerna baserat på de resulterande 'language_id'-värdena.

Slutsats

I det här inlägget lärde vi oss hur man arbetar med WHERE IN-satsen i SQL för att filtrera bort resultaten som matchar ett eller flera värden i en given lista.