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.

Leave a Comment

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.