SQL NOT er en logisk operator, der gør det muligt at filtrere sø­ge­re­sul­ta­ter effektivt og præcist ved hjælp af ude­luk­kel­se. Du kan bruge ope­ra­to­ren NOT til at udelade data, der ikke opfylder en be­tin­gel­se, og dermed begrænse re­sul­ta­ter­ne til relevante op­lys­nin­ger.

Hvad er NOT 10-ope­ra­to­ren?

Ligesom SQL OR og AND er NOT en af de logiske ope­ra­to­rer i SQL, der kan bruges til at formulere be­tin­gel­ser og kriterier for da­ta­fo­re­spørgs­ler. Mens ope­ra­to­rer­ne AND og OR re­tur­ne­rer de poster fra datasæt, der opfylder alle eller en af be­tin­gel­ser­ne, erNOT baseret på ude­luk­kel­se. Den udelader alle de op­lys­nin­ger fra sø­ge­re­sul­ta­ter­ne, der ikke opfylder en bestemt be­tin­gel­se.

SQL NOT bruges ofte sammen med SELECT, WHERE og SQL HAVING. Du kan kombinere NOT med AND og OR for at gøre din søgning endnu mere præcis. På den måde filtrerer du ir­re­le­van­te re­sul­ta­ter fra.

Hvad er for­skel­len mellem SQL NOT, AND og OR?

De væ­sent­lig­ste forskelle mellem SQL NOT, AND og OR kan sam­men­fat­tes som følger:

SQL NOT SQL AND SQL OR
Re­tur­ne­rer kun poster, der ikke opfylder den angivne be­tin­gel­se Re­tur­ne­rer poster, der opfylder alle de angivne be­tin­gel­ser Re­tur­ne­rer poster, der opfylder mindst én af de angivne be­tin­gel­ser
Negerer en be­tin­gel­se, der ikke er relevant for søgningen Kom­bi­ne­rer be­tin­gel­ser for at indsnævre søgningen til emner, der matcher flere sø­ge­kri­te­ri­er Begrænser sø­ge­re­sul­ta­ter­ne til emner, der opfylder mindst ét af flere kriterier
Tip

Vil du gerne dykke dybere ned i SQL, men er stadig ny­be­gyn­der? Så tag et kig på vores in­tro­duk­tion til SQL med eksempler.

Hvordan ser syntaksen for SQL NOT ud?

Den grund­læg­gen­de syntaks for SQL NOT ser således ud:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Følgende parametre kan bruges sammen med NOT:

  • SELECT: Angiver, hvilke kolonner der skal medtages i din søgning. Du kan bruge en stjerne * til at søge i hele tabellen. Du kan også angive enkelte kolonner ved hjælp af deres primær- og frem­med­nøg­ler.
  • FROM: Angiver den tabel, du vil søge i.
  • WHERE: Angiver de be­tin­gel­ser, du vil bruge til at indsnævre din søgning. Det er her, du kan bruge NOT.
  • NOT: Kom­bi­ne­res med WHERE for at angive, hvilke sø­ge­re­sul­ta­ter der ikke skal medtages.

Hvis du vil gøre dine sø­ge­re­sul­ta­ter endnu mere præcise, kan du også bruge AND og OR.

SQL NOT kom­bi­ne­ret med AND

Du kan kombinere NOT med AND for at udelukke re­sul­ta­ter, der opfylder to eller flere be­tin­gel­ser.

SELECT  *
FROM  table
WHERE  NOT  (condition1  AND  condition2)
sql

SQL NOT kom­bi­ne­ret med OR

Du kan kombinere NOT med OR for at udelukke re­sul­ta­ter, der opfylder mindst én be­tin­gel­se.

SELECT  *
FROM  table
WHERE  NOT  (condition1  OR  condition2)
sql

Hvad bruges SQL NOT til?

Der findes utallige an­ven­del­ses­mu­lig­he­der for SQL NOT i fo­re­spørgs­ler og søgninger. Her­i­blandt kan nævnes:

  • Ude­luk­kel­se af data ved­rø­ren­de kunder, ordrer eller produkter baseret på region, år, kategori, pris eller et andet kendetegn
  • Ignorerer data, der in­de­hol­der ugyldige eller manglende værdier
  • Fil­tre­ring af fi­nans­da­ta, der ikke opfylder bestemte transak­tions­kri­te­ri­er
  • Ude­luk­kel­se af data for me­d­ar­bej­de­re, der ikke er ansat i en bestemt afdeling
  • Fil­tre­ring af ansøgere, der ikke har bestemte kva­li­fi­ka­tio­ner

Eksempler på SQL NOT

Søgninger med SQL NOT kan variere meget afhængigt af an­ven­del­ses­si­tu­a­tio­nen. De afgørende faktorer er, hvordan du definerer be­tin­gel­sen med WHERE klausulen, NOT ope­ra­to­ren og andre valgfri ope­ra­to­rer. Nedenfor viser vi dig tre eksempler.

Ude­luk­kel­se af me­d­ar­bej­de­re efter region

Lad os sige, at du arbejder i en tabel ved navn »Me­d­ar­bej­de­re« og kun vil se de me­d­ar­bej­de­re, der ikke bor i Stor­bri­tan­ni­en. For at gøre dette skal du bruge kolonnen »Land«, en WHERE -klausul, en NOT -operator og sam­men­lig­nings­o­pe­ra­to­ren =.

SELECT  *
FROM  Customers
WHERE  NOT  (Country  =  'UK')
sql

Eller hvis du vil se, hvilke produkter der er udsolgt, vil det se no­gen­lun­de sådan ud:

SELECT  *
FROM  Products
WHERE  NOT  (Inventory  >  0)
sql

Fil­tre­ring af kunder

I dette eksempel skal vi søge efter en gruppe kunder, der ikke opfylder bestemte kriterier. Lad os sige, at du ikke ønsker at se kunder, der er yngre end 30 år og bor i Cardiff. Det vil se således ud:

SELECT  *
FROM  Customers
WHERE  NOT  (Age  <  30  AND  City  =  'Cardiff')
sql

At fra­sor­te­re ansøgere, der ikke opfylder kravene

Lad os sige, at du vil udelukke alle ansøgere, der hverken har en ba­chel­or­grad eller mindst tre års er­hverv­ser­fa­ring. Sådan ser søgningen ud:

SELECT  *
FROM  Applicants
WHERE  NOT  (Degree  =  ´Bachelor´  OR  Experience  <  3)
sql

Hvilke al­ter­na­ti­ver findes der til SQL NOT?

SQL NOT er den eneste operator, der bruger negation til at filtrere sø­ge­kri­te­ri­er. Men da SQL NOT er en alsidig SQL-operator, kan den kom­bi­ne­res med for­skel­li­ge SQL-kom­man­do­er for at udføre præcise fo­re­spørgs­ler. Disse kom­man­do­er omfatter SQL JOIN og SQL HAVING som SQL SUM og AVG. Den kan også kom­bi­ne­res med sam­men­lig­nings­o­pe­ra­to­rer som =, > og SQL LIKE samt de logiske ope­ra­to­rer AND og OR.

Gå til ho­ved­me­nu­en