SQL WHERE IN – Forklaret med eksempler

Er du træt af manuelt at filtrere data i din database og leder efter en mere effektiv måde at filtrere data med flere værdier på? SQL WHERE IN er måske den løsning, du har brug for!

Hvis du arbejder med SQL-databaser, er du sikkert stødt på WHERE IN-operatoren. Denne operator bruges til at angive flere værdier i en WHERE-sætning, så du kan filtrere dine data mere præcist.

Med denne operator kan du angive en liste over værdier, der skal matche med en kolonne i din tabel. Denne liste kan være hårdkodet eller genereret af en underforespørgsel, hvilket giver dig en masse fleksibilitet i, hvordan du filtrerer dine data.

SQL WHERE IN – Forklaret med eksempler

For eksempel kan du bruge IN-operatøren til at finde alle kunder fra en specifik liste over byer eller til at filtrere resultater baseret på et sæt produkt-id'er.

En af fordelene ved at bruge WHERE IN-operatøren er, at den kan gøre dine forespørgsler mere effektive. Ved at bruge en liste med værdier i stedet for flere OR-betingelser kan du reducere mængden af ​​behandling, der skal udføres af databasen.

Dette kan især være vigtigt, når man arbejder med store datasæt eller komplekse forespørgsler, hvor selv små optimeringer kan gøre en stor forskel i ydeevnen.

Indholdsfortegnelse

Hvad er SQL WHERE IN-klausul?

SQL WHERE IN-udtrykket bruges til at filtrere data baseret på en liste med værdier. Det giver dig mulighed for at angive flere værdier i en WHERE-sætning ved hjælp af en stenografi for flere OR-betingelser. Syntaksen for WHERE IN-sætningen 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 overvejer ovenstående SELECT-sætning, giver WHERE IN-sætningen dig mulighed for at hente data fra en tabel, hvor den angivne kolonne matcher en af ​​værdierne på listen. Det er en nyttig syntaks til at filtrere data, når du har et bestemt sæt værdier at søge efter.

Hvordan virker SQL WHERE IN-klausul?

Klausulen fungerer ved at sammenligne den angivne kolonne med hver værdi på listen. Hvis kolonnen matcher en af ​​værdierne på listen, inkluderes rækken i resultatsættet.

Lad os sige, at du har en tabel med navnet "kunder", der består af tre kolonner: "kunde_id", "kundenavn" og "land". Du ønsker at hente alle kunder fra USA, Canada og Mexico. Følgende forespørgsel vil vise dig, hvordan WHERE IN-sætningen bruges: 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 baseret på en liste over mulige værdier, kan du bruge SQL WHERE IN-sætningen. Denne klausul giver en nem måde at vælge rækker, hvor en bestemt kolonne matcher en af ​​et sæt værdier.

Her er fem eksempler på, hvordan klausulen kan bruges:

  1. Brug af SQL WHERE IN-klausul med en enkelt værdi

Lad os sige, at du vil vælge alle rækkerne i en tabel, hvor statuskolonnen er sat til "udgivet". Du kan gøre dette ved at bruge følgende SQL-sætning:

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

Dette vil returnere alle de rækker, hvor statuskolonnen er sat til "udgivet".

  1. Brug af SQL WHERE IN-klausul med flere værdier

Lad os nu sige, at du vil vælge alle de rækker, hvor statuskolonnen er sat til enten "udgivet" eller "udkast". Du kan bruge følgende SQL-sætning:

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

Dette vil returnere alle de rækker, hvor statuskolonnen er sat til "udgivet" eller "udkast". Du kan også tilføje så mange værdier, som du vil, adskilt af kommaer.

  1. Brug af SQL WHERE IN-klausul med Delete Statement

Antag, at du har en tabel kaldet "kunder" med følgende data:

SQL WHERE IN – Forklaret med eksempler

For at slette rækker fra denne tabel baseret på flere værdier i kolonnen "City", kan SQL WHERE IN-sætningen bruges med en DELETE-sætning, som vist i følgende forespørgsel:

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

Denne erklæring vil slette alle rækker fra "kunder"-tabellen, hvor "By"-kolonnenavnene matcher en af ​​værdierne på listen, dvs. 'New York', 'Chicago', 'Miami'. I ovenstående eksempel vil den slette den første, tredje og femte række fra tabellen.

Bemærk, at når du bruger WHERE IN-sætningen med en DELETE-sætning, skal du være meget omhyggelig med at undgå fejl ved at sikre, at du sletter de korrekte data. Det er bedst at teste din forespørgsel på en lille delmængde af data, før du kører den på hele din database.

  1. Brug af WHERE IN-operatoren og SQL WHERE-sætning til at filtrere data baseret på numeriske værdier

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

Denne forespørgsel returnerer alle rækker fra "kunder"-tabellen, hvor alderskolonnen indeholder de numeriske værdier 25, 30 eller 35, og bykolonnen indeholder værdien "London".

Bemærk, at WHERE IN-operatoren er en logisk operator, der kun giver dig mulighed for at angive flere værdier for en enkelt kolonne. SELECT-sætningen bruges til at hente data fra en tabel, og WHERE-sætningen bruges til at filtrere dataene baseret på specifikke forhold.

I dette eksempel returnerer forespørgslen rækker fra "kunder"-tabellen, hvor alderskolonnen matcher en af ​​de angivne numeriske værdier, og bykolonnen matcher værdien "London". Kolonnenavnene, der bruges i denne forespørgsel, er "alder" og "by", og den tabel, der forespørges på, er "kunder".

  1. Brug af WHERE IN med SELECT-sætningen og IN-operatoren.

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

I dette eksempel bruger vi en underforespørgsel til at hente alle kunde-id'er fra "kunder"-tabellen, hvor landekolonnen indeholder værdien "USA". Vi bruger derefter WHERE IN-operatoren til at filtrere "ordrer"-tabellen baseret på disse kunde-id'er.

Denne forespørgsel returnerer alle rækker fra ordretabellen, hvor kolonnen customer_id matcher et af de kunde-id'er, der returneres af underforespørgslen.

Husk, at WHERE IN-operatoren er en sammenligningsoperator, der giver dig mulighed for at sammenligne en kolonne med en liste med værdier. I dette tilfælde sammenligner vi kolonnen customer_id med en liste over kunde-id'er, der returneres af underforespørgslen.

Ved at bruge denne operator og en underforespørgsel kan du filtrere data ud fra specifikke kriterier og kun hente de data, der opfylder dine behov.

2 store fordele ved at bruge SQL WHERE IN-klausul?

  1. Forbedret forespørgselsydeevne

Klausulen tilbyder en af ​​de største fordele med hensyn til forespørgselsydeevne. Når du filtrerer data baseret på flere værdier, kan det være meget mere effektivt og hurtigere at bruge klausulen end at skrive flere WHERE-sætninger med OR-operatorer. Dette skyldes, at databasemotoren kan optimere forespørgselsudførelsesplanen for effektivt at hente de nødvendige data.

Overvej f.eks. følgende SQL- forespørgsler med tabellen "kunder", hvor vi forsøger at identificere kundeoplysningerne baseret på deres lande.

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

SQL WHERE IN – Forklaret med eksempler

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

SQL WHERE IN – Forklaret med eksempler

Som det ses i ovenstående eksempel, kan brug af klausulen resultere i en betydelig forbedring af forespørgselsydeevne og spare dig mere tid. Det er nemmere at vælge alle lande på én gang i stedet for at vælge land efter land ved at bruge OR-operatoren i et meget større datasæt.

  1. Forenklet skrivning af forespørgsler

En anden stor fordel ved at bruge SQ L WHERE IN-sætningen er, at den kan forenkle processen med at skrive komplekse forespørgsler. Når du skal filtrere data baseret på flere værdier, kan det hurtigt blive besværligt og svært at administrere at bruge flere WHERE-klausuler med OR-operatorer.

Ved at bruge klausulen kan du angive alle de værdier, du vil filtrere i en enkelt sætning, hvilket gør dine forespørgsler nemmere at læse og vedligeholde. Dette kan især være nyttigt, når du arbejder med store datasæt, eller når du skal skrive komplekse forespørgsler med flere betingelser.

Overvej f.eks. følgende SQL-forespørgsel:

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 forespørgsler fra ovenstående eksempel returnerer forespørgslen alle "elektronik"-produkter fra Apple, Samsung og Sony.

Brug af WHERE IN-sætningen, som det ses i sidstnævnte forespørgsel, kan dog forenkle processen med at bruge komplekse forespørgsler og gøre dem lettere at læse og forstå.

Desuden hjælper det også med at undgå fejl og gør det mindre tidskrævende.

Vores sidste ord

Tillykke! Du er nu klar over, hvordan du bruger SQL WHERE IN-sætningen til at filtrere data baseret på en liste over værdier. Lad os vurdere, hvad vi har lært:

Ved at bruge WHERE IN kan du forenkle en række SQL-forespørgsler og oprette dem for at hente et mere effektivt skrevet output.

Husk, WHERE IN er en forkortelse for flere OR-betingelser, så det kan erstatte lange lister med OR-sætninger. Derudover kan klausulen bruges med underforespørgsler, så du kan filtrere data baseret på resultaterne af en anden forespørgsel.

Når du bruger WHERE IN, er det vigtigt at overveje datatyperne for de værdier, du sammenligner. Hvis datatyperne ikke stemmer overens, skal du muligvis bruge typekonverteringsfunktioner for at sikre en nøjagtig sammenligning.

Overordnet set er SQL WHERE IN-sætningen en kraftfuld, men grundlæggende syntaks til filtrering af data i SQL-forespørgsler. Ved at mestre denne klausul kan du forbedre ydeevnen og læsbarheden af ​​din SQL-kode, hvilket gør det nemmere at arbejde med og vedligeholde i det lange løb.


Hvad er Power Query & M Language: En detaljeret oversigt

Hvad er Power Query & M Language: En detaljeret oversigt

Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Opret en sideinddelt rapport: Tilføjelse af tekster og billeder

Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.

SharePoint Automate-funktionen | En introduktion

SharePoint Automate-funktionen | En introduktion

Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Løs en dataanalyseudfordring med LuckyTemplates Accelerator

Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!

Løbende totaler i LuckyTemplates ved hjælp af DAX

Løbende totaler i LuckyTemplates ved hjælp af DAX

Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

LuckyTemplates Dax-variabler er konstante: Hvad betyder det?

Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af ​​variabler for, hvordan dine mål beregnes.

LuckyTemplates hældningsdiagram: en oversigt

LuckyTemplates hældningsdiagram: en oversigt

Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.

LuckyTemplates farvetemaer til ensartede visualiseringer

LuckyTemplates farvetemaer til ensartede visualiseringer

Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af gennemsnit i LuckyTemplates: Isolering af resultater på ugedage eller weekender ved hjælp af DAX

Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

LuckyTemplates tema | LuckyTemplates Desktop Standard Theming

Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.