SQL NOT är en logisk operator som un­der­lät­tar effektiv och precis fil­tre­ring av sökre­sul­tat genom ute­slut­ning. Du kan använda operatorn NOT för att utelämna data som inte uppfyller ett villkor, vilket begränsar dina resultat till relevant in­for­ma­tion.

Vad är SQL NOT -operatorn?

Till­sam­mans med SQL OR och AND är NOT en av de logiska ope­ra­to­rer­na i SQL som kan användas för att formulera villkor och kriterier för da­ta­kon­sul­ta­tio­ner. Medan ope­ra­to­rer­na AND och OR re­tur­ne­rar de objekt från da­ta­mäng­der som uppfyller alla eller ett av villkoren, baserasNOT på ute­slut­ning. Den utelämnar all in­for­ma­tion som inte uppfyller ett visst villkor från dina sökre­sul­tat.

SQL NOT används ofta till­sam­mans med SELECT, WHERE och SQL HAVING. Du kan kombinera NOT med AND och OR för att göra din sökning ännu mer precis. På så sätt filtrerar du bort ir­re­le­van­ta resultat.

Vad är skill­na­den mellan SQL NOT, AND och OR?

De vik­ti­gas­te skill­na­der­na mellan SQL NOT, AND och OR kan sam­man­fat­tas enligt följande:

SQL NOT SQL AND SQL OR
Re­tur­ne­rar endast objekt som inte uppfyller det angivna villkoret Re­tur­ne­rar objekt som uppfyller alla angivna villkor Re­tur­ne­rar objekt som uppfyller minst ett av de angivna villkoren
Negerar ett villkor som inte är relevant för sökningen Kom­bi­ne­rar villkor för att begränsa sökningen till objekt som matchar flera sök­kri­te­ri­er Begränsar sökre­sul­ta­ten till artiklar som uppfyller minst ett av flera kriterier
Tips

Vill du fördjupa dig i SQL men är fort­fa­ran­de nybörjare? Ta då en titt på vår in­tro­duk­tion till SQL med exempel.

Vad är syntaxen för SQL:s NOT?

Den grund­läg­gan­de syntaxen för SQL NOT ser ut som följer:

SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
sql

Följande pa­ra­met­rar kan användas med NOT:

  • SELECT: Anger vilka kolumner som ska in­klu­de­ras i sökningen. Du kan använda en asterisk * för att söka i hela tabellen. Du kan också ange enskilda kolumner med deras primära och främmande nycklar.
  • FROM: Anger den tabell som du vill söka i.
  • WHERE: Anger de villkor du vill använda för att begränsa din sökning. Här kan du använda NOT.
  • NOT: Kom­bi­ne­ras med WHERE för att ange vilka sökre­sul­tat som inte ska in­klu­de­ras.

Om du vill göra dina sökre­sul­tat ännu mer precisa kan du också använda AND och OR.

SQL NOT i kom­bi­na­tion med AND

Du kan kombinera NOT med AND för att utesluta resultat som uppfyller två eller flera villkor.

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

SQL NOT i kom­bi­na­tion med OR

Du kan kombinera NOT med OR för att utesluta resultat som uppfyller minst ett villkor.

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

Vad används SQL NOT till?

Det finns otaliga an­vänd­nings­om­rå­den för SQL NOT i frågor och sökningar. De in­klu­de­rar:

  • Utesluta data som rör kunder, be­ställ­ning­ar eller produkter baserat på region, år, kategori, pris eller annan egenskap
  • Ignorera data som in­ne­hål­ler ogiltiga eller saknade värden
  • Filtrera fi­nan­si­el­la data som inte uppfyller vissa trans­ak­tions­kri­te­ri­er
  • Utesluta data för anställda som inte tillhör en viss avdelning
  • Filtrera bort sökande som inte har vissa kva­li­fi­ka­tio­ner

Exempel på SQL NOT

Sökningar med SQL NOT kan variera kraftigt beroende på an­vänd­nings­fal­let. Avgörande faktorer är hur du de­fi­ni­e­rar villkoret med WHERE, NOT och andra valfria ope­ra­to­rer. Nedan visar vi tre exempel.

Ute­slut­ning av anställda baserat på region

Låt oss säga att du arbetar i en tabell som heter “Anställda” och bara vill se de anställda som inte bor i Stor­bri­tan­ni­en. För att göra detta använder du kolumnen “Land”, en WHERE, en NOT och jäm­fö­rel­se­o­pe­ra­torn =.

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

Om du vill se vilka produkter som är slut i lager ser det ungefär så här ut:

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

Fil­tre­ring av kunder

I det här exemplet söker vi efter en grupp kunder som inte uppfyller vissa kriterier. Låt oss säga att du inte vill se kunder som är yngre än 30 år och bor i Cardiff. Det skulle se ut så här:

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

Filtrera bort un­der­kva­li­fi­ce­ra­de sökande

Låt oss säga att du vill utesluta alla sökande som inte har en kan­di­da­tex­a­men eller minst tre års ar­bet­ser­fa­ren­het. Sökningen skulle se ut så här:

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

Vilka är några al­ter­na­tiv till SQL NOT?

SQL NOT är den enda ope­ra­tö­ren som använder negation för att filtrera sök­kri­te­ri­er. Men eftersom SQL NOT är en mångsidig SQL-operator kan den kom­bi­ne­ras med olika SQL-kommandon för att utföra precisa sökningar. Dessa kommandon in­klu­de­rar SQL JOIN och SQL HAVING som SQL SUM och AVG. Den kan också kom­bi­ne­ras med jäm­fö­rel­se­o­pe­ra­to­rer som =, > och SQL LIKE, samt de logiska ope­ra­to­rer­na AND och OR.

Gå till huvudmeny