I denne blog vil vi diskutere, hvordan man filtrerer i SQL. Vi vil forklare og vise nogle eksempler, der bruger filtreringsbetingelser såsom IN, NOT IN, LIKE og NOT LIKE .
Disse filtreringsbetingelser bruges til at filtrere outputtet fra dataene. I stedet for at vælge dem ved hjælp af flere kommandolinjer, vil det være lettere for dig at få adgang til dataene.
Indholdsfortegnelse
Brug af IN og IKKE IN-operatører til at filtrere data i SQL
I dette eksempel får vi dataene fra ID 1, 5 eller 7. De fleste vil bruge OR-betingelser .

Hvis du vil have data fra flere ID'er, skal du skrive flere ELLER-betingelser. Du kan dog bruge IN-operatoren til at få de data, du ønsker, i stedet for at bruge OR-betingelser mange gange.
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Brug af denne filtreringsbetingelse vil give os det samme output, som er dataene fra ID'erne 1, 5 eller 7. Tværtimod, hvis du ønsker at udtrække dataene fra alle undtagen fra ID'erne 1, 5 og 7, ville du mest brug sandsynligvis OR-betingelsen og <> (NOT EQUAL-operator).
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
I stedet for at skrive lange kommandoer, kan vi bruge NOT IN-operatoren .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Med denne filtreringsbetingelse vil du udtrække dataene undtagen id'erne 1, 5 og 7.
Brug af disse betingelser vil spare dig for masser af tid, og det er samtidig en meget bedre måde at skrive på i stedet for at bruge flere OR-betingelser .
Brug LIKE og NOT LIKE-operatører til at filtrere data i SQL
LIKE og NOT LIKE ligner IN og NOT IN operatorerne. I stedet for sig selv vil den få delen af en streng. Husk, at du kan bruge jokertegn eller specialtegn som procent (%) og understregning (_).
% betyder , at det vil matche alle posterne med den givne streng. Hvis vi matcher 86 og %, skal de første to cifre være 86. Så den finder alle værdier, der starter med 86.
Men hvis vi placerer % på begge sider af 86, kan det komme fra et hvilket som helst sted. Det kan komme fra starten, slutningen eller midten. Så den finder alle værdier, der har 86 i starten, midten eller slutningen.
På den anden side matcher _ kun 1 tegn. Hvis du bruger 86 og _ (86_), vil den lede efter værdier, der har 86 på 1. og 2. position som 860, 861, 862, og så videre og så videre. Hvis du bruger _ og 86 (_86), vil den lede efter værdier med 86 på 2. og 3. position.
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
I dette eksempel bruger vi LIKE-operatoren til at få de data, der har strengen Mark . Vi skal simpelthen sætte Mark imellem % for at få et output, der indeholder Mark .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
På samme måde, hvis vi ikke ønsker at udtrække de data, der indeholder Mark , kan vi bruge NOT LIKE-operatoren . Sæt derefter Mark imellem %.
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Denne gang vil outputtet ikke indeholde Mark .
Brug af SQL-filtreringsbetingelserne i SSMS
Først åbner vi vores (SQL Server Management Studio).
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Dernæst indlæser vi tabellen, som vi skal bruge. Bemærk, at den database, vi bruger, er adventureworks2012, som kan findes på Microsofts dokumentationswebsted .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Klik derefter på Udfør .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Derefter vil du se outputtet på fanen Resultater.
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Derefter filtrerer vi outputtet baseret på PersonType . Vi bruger kommandoen select distinct . Vi fremhæver kommandoen og klikker på Udfør .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Så vil du se outputtet, der viser PersonType .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Dernæst vil vi udtrække posterne fra PersonType IN eller SP eller SC . Til denne bruger vi OR-betingelsen . Vi fremhæver kommandoen og klikker på udfør .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Du vil så se, at antallet af rækker er 19.254.
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Men i stedet for at bruge OR-betingelsen , bruger vi IN-operatoren . Så vi skriver kommandoen og fremhæver den. Klik derefter på udfør .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Dette vil give os det samme antal rækker, som er 19.254 .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Hvis vi vil udtrække alle data undtagen IN , SP og SC , bruger vi NOT IN-operatoren . Så lad os skrive kommandoen og fremhæve den. Klik derefter på udfør .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Dette vil give os alle data undtagen dem, der er fra IN , SP og SC .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Dernæst bruger vi LIKE-operatoren til at udtrække de data, der indeholder Rob fra kolonnen Fornavn . Lad os bruge kommandoen, fremhæve den og klikke på Udfør .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Som et resultat vil vi se, at outputtet nu indeholder Rob i kolonnen Fornavn . Da vi brugte %, vil det vise alle data, der har strengen Rob .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Til sidst bruger vi NOT LIKE-operatoren . I dette eksempel ønsker vi at udtrække de data, der ikke indeholder Rob . Så vi skriver koden, fremhæver den og klikker derefter på Udfør.
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Dette vil give os det output, der ikke viser nogen post, der indeholder Rob i kolonnen Fornavn .
![Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE Filtrer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE]()
Konklusion
For at opsummere har vi diskuteret, hvordan man filtrerer i SQL ved hjælp af IN, NOT IN, LIKE og NOT LIKE operatorer. Du har lært deres brug og deres forskelle, og i hvilken situation du kan bruge dem.
Disse operatører er mere effektive end at bruge OR-betingelsen . Du kan bruge disse operatorer til at filtrere og udtrække de data, du ønsker fra din database, i stedet for at bruge længere kommandoer, så sørg for at bruge disse filtreringsbetingelser korrekt.
Alt det bedste,
Hafiz