Mønstertilpasning i SQL-forespørgsler med jokertegn

SQL-mønstermatchning giver dig mulighed for at søge efter mønstre i data, hvis du ikke kender det nøjagtige ord eller den sætning, du søger. Denne form for SQL forespørgsel bruger jokertegn til at matche et mønster i stedet for at specificere det nøjagtigt. For eksempel kan du bruge jokertegnet "C%" til at matche enhver streng, der begynder med en stor C.

Forstørrelsesglas
Kate Ter Haar / Flickr / CC med 2.0

Brug af LIKE Operator

Hvis du vil bruge et wildcard-udtryk i en SQL-forespørgsel, skal du bruge LIKE-operatoren i en WHERE-sætning og omslutte mønsteret inden for enkelte anførselstegn.

Brug% Wildcard til at udføre en simpel søgning

For at søge efter enhver medarbejder i din database med et efternavn, der begynder med bogstavet C, skal du bruge følgende Transact-SQL-sætning:

VÆLG *
FRA medarbejdere
HVOR efternavn LIKE 'C%'

Udeladelse af mønstre ved hjælp af NOT Keyword

Brug nøgleordet IKKE til at vælge poster, der ikke matcher mønsteret. For eksempel returnerer denne forespørgsel alle poster, hvis navn sidst gør ikke begynde med C:

instagram viewer
VÆLG *
FRA medarbejdere
HVOR efternavn IKKE LIGER 'C%'

Matching af et mønster overalt ved hjælp af% Wildcard to gange

Brug to forekomster af % jokertegn for at matche et bestemt mønster hvor som helst. Dette eksempel returnerer alle poster, der indeholder en C hvor som helst i efternavnet:

VÆLG *
FRA medarbejdere
HVOR efternavn LIKE '% C%'

Finde et mønstermatch på en bestemt position

Brug _ jokertegn for at returnere data på et bestemt sted. Dette eksempel matcher kun, hvis C forekommer ved tredje position i efternavnskolonnen:

VÆLG *
FRA medarbejdere
HVOR efternavn LIKE '_ _C%'

Understøttede wildcard-udtryk i Transact SQL

Der er flere wildcard-udtryk understøttet af Transact SQL:

  • Det % jokertegn matcher nul eller flere tegn af enhver type og kan bruges til at definere jokertegn både før og efter mønsteret. Hvis du er fortrolig med DOS-mønstermatchning, svarer det til * jokertegnet i denne syntaks.
  • Det _ jokertegn matcher nøjagtigt et tegn af enhver type. Det svarer til ? jokertegn i DOS-mønster matching.
  • Angiv en liste med tegn ved at omslutte dem i firkantede parenteser. For eksempel wildcardet [aeiou] matcher enhver vokal.
  • Angiv en række tegn ved at omslutte området i firkantede parenteser. For eksempel wildcardet [er] matcher ethvert bogstav i første halvdel af alfabetet.
  • Negere en række tegn ved at inkludere karattegnet umiddelbart inden i den åbne firkantede parentes. For eksempel, [^ aeiou] matcher enhver karakter, der ikke er vokal, mens [^ a-m] matcher ethvert tegn, der ikke er i første halvdel af alfabetet.

Kombination af jokertegn til komplekse mønstre

Kombiner disse jokertegn i komplekse mønstre for at udføre mere avancerede forespørgsler. Antag for eksempel, at du skal konstruere en liste over alle dine medarbejdere, der har navne, der begynder med et bogstav fra første halvdel af alfabetet, men som ikke slut med en vokal. Du kan bruge følgende forespørgsel:

VÆLG *
FRA medarbejdere
HVOR efternavn LIKE '[a-m]% [^ aeiou]'

På samme måde kan du oprette en liste over alle medarbejdere med efternavne bestående af nøjagtigt fire tegn ved hjælp af fire forekomster af _ mønster:

VÆLG *
FRA medarbejdere
HVOR efternavn LIKE '____'

Som du kan fortælle, giver brugen af ​​SQL-mønstertilpasningsfunktioner databasebrugerne mulighed for at gå ud over enkle tekstforespørgsler og udføre avancerede søgeoperationer.

instagram story viewer