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.
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:
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.