Mønstermatching i SQL-spørringer med jokertegn

click fraud protection

SQL-mønstermatching lar deg søke etter mønstre i data hvis du ikke vet det ordet eller uttrykket du leter etter. Denne typen SQL spørring bruker jokertegn for å matche et mønster, i stedet for å spesifisere det nøyaktig. For eksempel kan du bruke jokertegnet "C%" for å matche hvilken som helst streng som begynner med store bokstaver C.

Forstørrelsesglass
Kate Ter Haar / Flickr / CC innen 2.0

Bruke LIKE Operator

Hvis du vil bruke et jokertegnuttrykk i en SQL-spørring, bruker du LIKE-operatoren i en WHERE-ledd og legger mønsteret i enkle anførselstegn.

Bruk% Wildcard til å utføre et enkelt søk

For å søke etter en ansatt i databasen din med et etternavn som begynner med bokstaven C, bruk følgende Transact-SQL-setning:

Å VELGE *
FRA ansatte
HVOR etternavn LIKE 'C%'

Utelatelse av mønstre ved bruk av IKKE nøkkelord

Bruk IKKE nøkkelordet til å velge poster som ikke samsvarer med mønsteret. For eksempel returnerer denne spørringen alle poster hvis navn sist gjør ikke begynn med C:

Å VELGE *
FRA ansatte
HVOR etternavn IKKE LIKER 'C%'
instagram viewer

Matcher et mønster hvor som helst med% Wildcard to ganger

Bruk to forekomster av % jokertegn for å matche et bestemt mønster hvor som helst. Dette eksemplet returnerer alle poster som inneholder C hvor som helst i etternavnet:

Å VELGE *
FRA ansatte
HVOR etternavn LIKE '% C%'

Finne et mønster samsvar med en spesifikk posisjon

Bruke _ jokertegn for å returnere data på et bestemt sted. Dette eksemplet samsvarer bare hvis C opptrer ved tredje plassering i etternavnskolonnen:

Å VELGE *
FRA ansatte
HVOR etternavn LIKE '_ _C%'

Støttede wildcard-uttrykk i Transact SQL

Det er flere wildcard-uttrykk som støttes av Transact SQL:

  • De % jokertegn samsvarer med null eller flere tegn av hvilken som helst type og kan brukes til å definere jokertegn både før og etter mønsteret. Hvis du er kjent med DOS-mønstermatching, tilsvarer det * jokertegnet i den syntaksen.
  • De _ jokertegn samsvarer med nøyaktig ett tegn av hvilken som helst type. Det tilsvarer ? jokertegn i DOS mønstermatching.
  • Spesifiser en liste over tegn ved å legge dem i parentes. For eksempel jokertegnet [aeiou] samsvarer med hvilken som helst vokal.
  • Spesifiser en rekke tegn ved å legge inn området i parentes. For eksempel jokertegnet [er] samsvarer med hvilken som helst bokstav i første halvdel av alfabetet.
  • Negere en rekke tegn ved å inkludere karatkarakteren rett inne i den firkantede parentesen. For eksempel, [^ aeiou] samsvarer med en hvilken som helst karakter som ikke er vokal mens [^ a-m] samsvarer med alle tegn som ikke er i første halvdel av alfabetet.

Kombinere jokertegn for komplekse mønstre

Kombiner disse jokertegnene i komplekse mønstre for å utføre mer avanserte spørsmål. Anta for eksempel at du må lage en liste over alle dine ansatte som har navn som begynner med en bokstav fra første halvdel av alfabetet, men som ikke avslutt med en vokal. Du kan bruke følgende spørsmål:

Å VELGE *
FRA ansatte
HVOR etternavn LIKE '[a-m]% [^ aeiou]'

På samme måte kan du lage en liste over alle ansatte med etternavn som består av nøyaktig fire tegn ved å bruke fire forekomster av _ mønster:

Å VELGE *
FRA ansatte
HVOR etternavnet LIKE '____'

Som du kan fortelle, gir bruk av SQL-mønstertilpasningsfunksjoner databasebrukere muligheten til å gå utover enkle tekstspørringer og utføre avanserte søkeoperasjoner.

instagram story viewer