SQL WHERE IN – Forklart med eksempler

Er du lei av å manuelt filtrere data i databasen din og ser etter en mer effektiv måte å filtrere data med flere verdier på? SQL WHERE IN kan være løsningen du trenger!

Hvis du jobber med SQL-databaser, har du sannsynligvis kommet over WHERE IN-operatøren. Denne operatoren brukes til å spesifisere flere verdier i en WHERE-klausul, slik at du kan filtrere dataene dine mer presist.

Med denne operatoren kan du spesifisere en liste over verdier som skal samsvare med en kolonne i tabellen. Denne listen kan hardkodes eller genereres av en underspørring, noe som gir deg mye fleksibilitet i hvordan du filtrerer dataene dine.

SQL WHERE IN – Forklart med eksempler

Du kan for eksempel bruke IN-operatøren til å finne alle kunder fra en spesifikk liste over byer eller for å filtrere resultater basert på et sett med produkt-ID-er.

En av fordelene med å bruke WHERE IN-operatøren er at den kan gjøre spørsmålene dine mer effektive. Ved å bruke en liste med verdier i stedet for flere ELLER-betingelser, kan du redusere mengden behandling som må gjøres av databasen.

Dette kan være spesielt viktig når du arbeider med store datasett eller komplekse spørringer, der selv små optimaliseringer kan utgjøre en stor forskjell i ytelse.

Innholdsfortegnelse

Hva er SQL WHERE IN-klausul?

SQL WHERE IN-leddet brukes til å filtrere data basert på en liste med verdier. Den lar deg spesifisere flere verdier i en WHERE-klausul ved å bruke en stenografi for flere OR-betingelser. Syntaksen for WHERE IN-leddet for SQL Server , PostgreSQL, MYSQL og Oracle er som følger:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

Hvis vi vurderer SELECT-setningen ovenfor, lar WHERE IN-leddet deg hente data fra en tabell der den angitte kolonnen samsvarer med en av verdiene i listen. Det er en nyttig syntaks for å filtrere data når du har et spesifikt sett med verdier å søke etter.

Hvordan fungerer SQL WHERE IN-klausul?

Klausulen fungerer ved å sammenligne den angitte kolonnen med hver verdi i listen. Hvis kolonnen samsvarer med noen av verdiene i listen, inkluderes raden i resultatsettet.

La oss si at du har en tabell kalt "kunder" som består av tre kolonner: "kunde_id", "kundenavn" og "land". Du ønsker å hente alle kundene fra USA, Canada og Mexico. Følgende spørring vil vise deg hvordan WHERE IN-klausulen brukes: SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Canada','Mexico');

Eksempler på SQL WHERE IN-klausul

Hvis du vil filtrere resultater basert på en liste over mulige verdier, kan du bruke SQL WHERE IN-leddet. Denne klausulen gir en enkel måte å velge rader der en bestemt kolonne samsvarer med en av et sett med verdier.

Her er fem eksempler på hvordan klausulen kan brukes:

  1. Bruke SQL WHERE IN-klausul med en enkelt verdi

La oss si at du vil velge alle radene i en tabell der statuskolonnen er satt til «publisert». Du kan gjøre dette ved å bruke følgende SQL-setning:

SELECT * 
FROM my_table 
WHERE status IN ('published');

Dette vil returnere alle radene der statuskolonnen er satt til «publisert».

  1. Bruke SQL WHERE IN-klausul med flere verdier

La oss nå si at du vil velge alle radene der statuskolonnen er satt til enten «publisert» eller «utkast». Du kan bruke følgende SQL-setning:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

Dette vil returnere alle radene der statuskolonnen er satt til «publisert» eller «utkast». Du kan også legge til så mange verdier du vil, atskilt med komma.

  1. Bruke SQL WHERE IN-klausul med Delete Statement

Anta at du har en tabell kalt "kunder" med følgende data:

SQL WHERE IN – Forklart med eksempler

For å slette rader fra denne tabellen basert på flere verdier i "City"-kolonnen, kan SQL WHERE IN-leddet brukes med en DELETE-setning, som vist i følgende spørring:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

Denne setningen vil slette alle rader fra "kunder"-tabellen der "By"-kolonnenavnene samsvarer med noen av verdiene i listen, dvs. 'New York', 'Chicago', 'Miami'. I eksemplet ovenfor vil den slette den første, tredje og femte raden fra tabellen.

Merk at når du bruker WHERE IN-klausulen med en DELETE-setning, bør du være veldig forsiktig med å unngå feil ved å sørge for at du sletter riktige data. Det er best å teste spørringen på et lite undersett av data før du kjører det på hele databasen.

  1. Bruke WHERE IN-operatoren og SQL WHERE-leddet for å filtrere data basert på numeriske verdier

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

Denne spørringen vil returnere alle rader fra "kunder"-tabellen der alderskolonnen inneholder de numeriske verdiene 25, 30 eller 35, og bykolonnen inneholder verdien "London".

Merk at WHERE IN-operatoren er en logisk operator som bare lar deg spesifisere flere verdier for en enkelt kolonne. SELECT-setningen brukes til å hente data fra en tabell, og WHERE-leddet brukes til å filtrere dataene basert på spesifikke forhold.

I dette eksemplet returnerer spørringen rader fra "kunder"-tabellen der alderskolonnen samsvarer med en av de angitte numeriske verdiene og bykolonnen samsvarer med verdien "London". Kolonnenavnene som brukes i denne spørringen er "alder" og "by", og tabellen det spørres etter er "kunder".

  1. Bruke WHERE IN med SELECT-setningen og IN-operatoren.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

I dette eksemplet bruker vi en underspørring for å hente alle kunde-ID-er fra "kunder"-tabellen der landkolonnen inneholder verdien "USA". Vi bruker deretter WHERE IN-operatøren til å filtrere "ordre"-tabellen basert på disse kunde-ID-ene.

Denne spørringen vil returnere alle rader fra ordretabellen der kunde_id-kolonnen samsvarer med en av kunde-ID-ene som returneres av underspørringen.

Husk at WHERE IN-operatoren er en sammenligningsoperator som lar deg sammenligne en kolonne med en liste med verdier. I dette tilfellet sammenligner vi kunde_id-kolonnen med en liste over kunde-ID-er som returneres av underspørringen.

Ved å bruke denne operatoren og en underspørring kan du filtrere data basert på spesifikke kriterier og hente kun de dataene som dekker dine behov.

2 store fordeler ved å bruke SQL WHERE IN-klausul?

  1. Forbedret søkeytelse

Klausulen tilbyr en av de største fordelene når det gjelder søkeytelse. Når du filtrerer data basert på flere verdier, kan bruk av leddet være mye mer effektivt og raskere enn å skrive flere WHERE-ledd med OR-operatorer. Dette er fordi databasemotoren kan optimalisere spørringsutførelsesplanen for å effektivt hente de nødvendige dataene.

Vurder for eksempel følgende SQL- spørringer med "kunder"-tabellen, der vi prøver å identifisere kundedetaljene basert på deres land.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – Forklart med eksempler

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – Forklart med eksempler

Som vist i eksemplet ovenfor, kan bruk av klausulen resultere i en betydelig forbedring i søkeytelsen og spare deg for mer tid. Det er lettere å velge alle land samtidig i stedet for å velge land etter land ved å bruke OR-operatøren i et mye større datasett.

  1. Forenklet spørreskriving

En annen stor fordel med å bruke SQ L WHERE IN-klausulen er at den kan forenkle prosessen med å skrive komplekse søk. Når du trenger å filtrere data basert på flere verdier, kan bruk av flere WHERE-klausuler med OR-operatører fort bli tungvint og vanskelig å administrere.

Ved å bruke klausulen kan du spesifisere alle verdiene du vil filtrere i en enkelt setning, noe som gjør spørsmålene dine lettere å lese og vedlikeholde. Dette kan være spesielt nyttig når du arbeider med store datasett eller når du trenger å skrive komplekse spørringer med flere betingelser.

Tenk for eksempel på følgende SQL-spørring:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

I begge spørringene fra eksemplet ovenfor returnerer spørringen alle "elektronikk"-produkter fra Apple, Samsung og Sony.

Imidlertid kan bruk av WHERE IN-klausulen som vist i sistnevnte spørring forenkle prosessen med å bruke komplekse spørringer og gjøre dem lettere å lese og forstå.

Videre hjelper det også med å unngå feil og gjør det mindre tidkrevende.

Vårt siste ord

Gratulerer! Du er nå klar over hvordan du bruker SQL WHERE IN-leddet til å filtrere data basert på en liste med verdier. La oss vurdere hva vi har lært:

Ved å bruke WHERE IN kan du forenkle en rekke SQL-spørringer og lage dem for å hente en mer effektivt skrevet utgang.

Husk at WHERE IN er en forkortelse for flere OR-betingelser, så det kan erstatte lange lister med OR-setninger. I tillegg kan klausulen brukes med underspørringer, slik at du kan filtrere data basert på resultatene av en annen spørring.

Når du bruker WHERE IN, er det viktig å vurdere datatypene til verdiene du sammenligner. Hvis datatypene ikke stemmer overens, må du kanskje bruke typekonverteringsfunksjoner for å sikre en nøyaktig sammenligning.

Totalt sett er SQL WHERE IN-klausulen en kraftig, men grunnleggende syntaks for å filtrere data i SQL-spørringer. Ved å mestre denne klausulen kan du forbedre ytelsen og lesbarheten til SQL-koden din, noe som gjør det lettere å jobbe med og vedlikeholde i det lange løp.


Variabler og uttrykk i Power Query Editor

Variabler og uttrykk i Power Query Editor

Denne opplæringen vil diskutere om variabler og uttrykk i Power Query Editor. Du lærer hvordan du skriver og bygger dem riktig.

Hvordan lage et Lucky Templates-varmekart

Hvordan lage et Lucky Templates-varmekart

Et LuckyTemplates-varmekart er en type visualisering som brukes til å vise datatetthet på et kart. I denne opplæringen vil jeg diskutere hvordan vi kan lage en – ikke gå glipp av noe!

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Jeg skal lære deg et veldig interessant eksempel rundt Pareto-prinsippet og hvordan du lager et Pareto-diagram ved hjelp av viktige DAX-formler.

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Lær hvordan et tilpasset stolpediagram på markedsplassen kan brukes til datasammenligning og hvordan du kan lage dem ved å bruke eksempler i LuckyTemplates.

Kraftautomatisering av statiske resultater: En oversikt

Kraftautomatisering av statiske resultater: En oversikt

Lær hvordan Power Automate Static Results-funksjonen fungerer og hvorfor det er bra å bli lagt til de beste praksisene når du lager flytdiagrammer.

LuckyTemplates Python-opplæring: Hvordan oversette tekster

LuckyTemplates Python-opplæring: Hvordan oversette tekster

eDNA demonstrerer hvordan du utfører språk- eller tekstoversettelse ved hjelp av Python og overfører det til LuckyTemplates. LuckyTemplates Python-opplæring.

Lag et Gantt-diagram i LuckyTemplates Report Builder

Lag et Gantt-diagram i LuckyTemplates Report Builder

I denne opplæringen lærer du hvordan du bruker Gauge Bullet Graph til å lage et Gantt-diagram i LuckyTemplates Report Builder.

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

I denne opplæringen lærer du hvordan du lager et tredimensjonalt (3D) spredningsplott ved å bruke Python i LuckyTemplates.

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet