Videre til indhold

SQL Kursus

Gratis, online undervisning i SQL

  • Klargøring
  • Kursus
  • Lær SQL gratis
  • Download kursusmateriale
SQL Kursus

Tag: SQL or

Brug AND og OR i en forespørgsel

Med logiske operatorer kan du kombinere flere betingelser i en SQL-forespørgsel. Det er nyttigt, når du skal finde rækker i en tabel, hvor værdier ligger i et interval eller, når du fremsøger rækker ud fra værdier i flere kolonner.

Logiske operatorer

Operatorerne AND og OR kaldes for logiske operatorer, da de bunder i den logiske aritmetik. I den logiske aritmetik er et udsagn enten SANDT eller FALSK, på engelsk TRUE eller FALSE. I SQL-sproget er de logiske operatorer AND og OR de mest brugte og anvendelige.

AND
Logisk OG læses som: Jeg er SAND, når det første udsagn OG det andet udsagn er SAND.

OR
Logisk ELLER læses som: Jeg er SAND, når mindst et af udsagnene er SAND.

Det kræver nok lige nogle eksempler:
1=1 AND 2=2 – SAND da begge udsagn er sande.
1>0 AND 2>3 – FALSK da andet udsagn er falsk.
2>3 AND 1>0 – FALSK da første udsagn er falsk.
2>3 AND 1=0 – FALSK da begge udsagn er falske.

Bemærk, at ud af fire mulige kombinationer giver AND kun SAND i det ene tilfælde, hvor begge udsagn er sande.

1=1 OR 2=2 – SAND da mindst et udsagn (faktisk begge) er sande.
1>0 OR 2>3 – SAND da første udsagn er sandt.
2>3 OR 1>0 – SAND da andet udsagn er sandt.
2>3 OR 1=0 – FALSK da begge udsagn er falske.

For OR gælder det, at ud af fire mulige kombinationer er tre af dem sande.

Brug AND-operator

Lad os nu få fingrene ned i SQL Server. Start din Management Studio op, forbind til SQL Kursus databasen. Find varer, der hedder noget med ‘boble’ og koster mere end 1,10 kr.

SELECT * FROM Vare
WHERE
    Varebetegnelse LIKE 'Boble%'
    AND Pris > 1.1

Betingelserne kan benytte samme kolonne. Find alle varer, hvor prisen er mellem 1,00 og 5,00 kroner:

SELECT * FROM Vare
WHERE
    Pris >= 1
    AND Pris <= 5

Du kan selvfølgelig have mere end to betingelser. Find varer, der hedder noget med ‘boble’, og prisen er mellem 1,00 og 5,00 kroner:

SELECT * FROM Vare
WHERE
    Varebetegnelse LIKE 'Boble%'
    AND Pris >= 1
    AND Pris <= 5

Brug OR-operator

Lad os kigge lidt på OR-operatoren. Find varer, hvor prisen er mindre end 5,00 kr. eller mere end 40,00 kr.:

SELECT * FROM Vare
WHERE
    Pris < 5
    OR Pris > 40

Find varerne af typen Bobleplast og alle de varer, der koster over 100,00 kr. Lad dig ikke narre af, at jeg skriver ‘og’ – jeg mener faktisk ‘eller’:

SELECT * FROM Vare
WHERE
    Varebetegnelse LIKE 'Bobleplast%'
    OR Pris > 100

Du kan naturligvis bruge mere end to betingelser med OR. Lad os udvide ovenstående med de varer, der koster under 5,00 kr.

SELECT * FROM Vare
WHERE
    Varebetegnelse LIKE 'Bobleplast%'
    OR Pris > 100
    OR Pris < 5

Parenteser hjælper med at prioritere

Du kan sikkert sagtens forestille dig, at du gerne må bruge både AND og OR i samme forespørgsel. Hvis du gør det, kan det være relevant at vide, hvilken operator, der har prioritet over den anden.

Jeg har ændret lidt i forespørgslen ovenfor:

SELECT * FROM Vare
WHERE
    Varebetegnelse LIKE 'Bobleplast%'
    OR Pris > 5
    AND Pris < 100

Resultatet afspejler det faktum, at AND har højest prioritet. Vi får altså varerne, der hedder noget med Bobleplast, eller hvor priserne ligger mellem 5 og 100 kr.

En parentes omkring AND-delen af betingelsen giver det samme resultat:

SELECT * FROM Vare
WHERE
    Varebetegnelse LIKE 'Bobleplast%'
    OR (Pris > 5
    AND Pris < 100)

AND har højere prioritet end OR

Ved at sætte parentes om første del af betingelsen, spørger vi efter rækker med Bobleplast og alle dem med pris over 5 kr., dertil skal prisen være under 100 kr. blandt alle varer. I resultatet forsvinder rækken med Bobleplast over 100 kr.

SELECT * FROM Vare
WHERE
    (Varebetegnelse LIKE 'Bobleplast%'
    OR Pris > 5)
    AND Pris < 100

Parentes ændrer betingelsernes prioritet

Prøv selv

  • Find kunder, der starter med K og ikke har en email.
  • Find kunder, der bor i Viborg eller Ishøj.
  • Find alle boblekuverter mellem 1,00 kr. og 1,20 kr. og papkasser mellem 4,00 kr. og 7,00 kr. alle priser inklusive.
  • Find alle kunder hvor vi kender telefonnummer, men mangler email.
Forfatter CarstenUdgivet 24. maj 202024. maj 2020Kategorier KursusTags sql and, sql dansk, sql like, SQL or, sql server express, sql server management studio, sql where, sqlkursus2 kommentarer til Brug AND og OR i en forespørgsel

Kategorier

  • Klargøring
  • Kursus

Sider

  • Download kursusmateriale
  • Kontakt SQLKursus.dk
  • Lær SQL gratis
  • Privatliv- og cookiepolitik

Services fra SQLKursus.dk

  • YouTube-kanal
  • Twitter @SqlKursus

Seneste indlæg

  • Beregninger og konstante værdier
  • Omdøbe felter og tabeller med AS
  • NOT i forespørgsel
  • Brug AND og OR i en forespørgsel
  • NULL betyder tom

Seneste kommentarer

  • Beregninger og konstante værdier | SQL Kursus til Simpel SELECT
  • Beregninger og konstante værdier | SQL Kursus til Omdøbe felter og tabeller med AS
  • Omdøbe felter og tabeller med AS | SQL Kursus til Beregninger og konstante værdier
  • NULL betyder tom i SQL | SQL Kursus til Brug AND og OR i en forespørgsel
  • Brug af NOT i en forespørgsel i SQL Server | SQL Kursus til Brug AND og OR i en forespørgsel
  • Klargøring
  • Kursus
  • Lær SQL gratis
  • Download kursusmateriale
SQL Kursus Drevet af WordPress
SQL Kursus bruger cookies. Du skal acceptere cookies for at benytte siden. Læs mereCookie-indstillingerAccepter
Privatliv- og cookiepolitik

Privatlivsoverblik

Hjemmesiden anvender cookies.

Nødvendige cookies gemmes i din browser og er nødvendige for at hjemmesiden fungerer.

Hjemmesiden anvender også tredjepartscookies for at kunne analysere brug af hjemmesiden og vise relevante reklamer.

 
Nødvendige
Altid slået til

Nødvendige cookies er altid aktive af hensyn til bruger- og sikkerhedsfunktionaliteten af websiden, udføre trafikanalyse og vise annoncer. Disse kan ikke slås fra, hvis du vil benytte hjemmesiden. Disse cookies gemmer ikke personhenførbare oplysninger.