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.

Leave a Comment

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.