Hvordan bruke regex i SQL -serveren med en lignende operatør

Hvordan bruke regex i SQL -serveren med en lignende operatør
Regelmessige uttrykk er en grunnleggende ferdighet for alle som ønsker å søke og manipulere strenger. Du kan spesifisere presise og komplekse uttrykk ved hjelp av regex for å finne og erstatte forskjellige strenger og mønstre. I verktøy, for eksempel SSM -er, kan du spesifisere REGEX -mønstrene i funnet hva og finne og erstatte alternativer.

I denne guiden vil vi imidlertid se på hvordan du utfører vanlige uttrykksspørsmål i T-SQL ved å bruke lignende og ikke som operatører.

Merk: Regelmessige uttrykk er et omfattende tema og kan ikke være utmattet i en enkelt tutorial. I stedet vil vi fokusere på mest kommando og nyttig regex du kan bruke i din daglige databaseoperasjon.

I T-SQL kan vi definere vanlige uttrykk ved å bruke lignende operatør. Operatøren vil ta det samsvarende uttrykket og finne alle matchende mønstre.

Det er forskjellige typer vanlige uttrykk i SQL Server:

  1. Alfabetisk regex
  2. Numerisk regex
  3. Spesiell karakter Regex
  4. Sak sensitiv regex
  5. Eksklusjon Regex

La oss forstå hvordan vi kan definere vanlig uttrykk i SQL Server.

SQL Server Regular Expressions Eksempler

La oss forstå hvordan vi bruker vanlige uttrykk i SQL Server ved hjelp av praktiske eksempler. I denne artikkelen vil vi bruke SalesDB -eksempeldatabasen.

Du kan laste ned eksempeldatabasen fra følgende ressurs:

Eksempel 1

Følgende eksempel på spørring bruker et vanlig uttrykk for å finne navnet på produkter, og starter med bokstaven L:

Bruk SalesDB;
Velg navn fra produkter der navn som '[l]%';

Den forrige spørringen skal finne de samsvarende mønstrene og returnere resultatet som vist:

Eksempel 2

Vi filtrerer for matchende produkter i eksemplet over, og starter med bokstaven l. For å filtrere for første og andre bokstaver, kan vi gjøre følgende:

Velg navn fra produkter der navn som '[l] [o]%';

Spørringen skal returnere navnene på produktene som begynner med LO. Det resulterende settet vises som:

Eksempel 3

For å filtrere for over to bokstaver, spesifiser hver bokstav i firkantede parenteser som vist:

Velg navn fra produkter der navn som '[l] [o] [c] [k]%';

Det resulterende settet vises som:

Eksempel 4

Anta at du vil filtrere for produkter som samsvarer med et spesifikt strengområde. For eksempel produkter som starter med tegn mellom L - P:

Velg navn fra produkter der navn som '[L-P]%';

Det resulterende settet er som vist:

Eksempel 5

Du kan også filtrere for flere matchende forhold i en enkelt spørring som vist:

Velg navn fra produkter der navn som '[l-p] [a-o]%';

Et eksempel på resultatet er som:

Eksempel 6

Anta at du vil få produkter til å ende med en spesifikk karakter? I dette tilfellet kan du endre posisjonen til prosentandelen som vist:

Velg navn fra produkter der navn som '%[PE]';

Resultatene er som vist:

Eksempel 7

For å filtrere for å resultere i start og avslutte med de spesifiserte tegnene, kan du kjøre spørringen som:

Velg * fra produkter der navn som '[til]%[re]';

Spørringen ovenfor skal returnere et resultat satt som:

Eksempel 8

Hva om du vil ekskludere spesifikke tegn fra filterspørsmålet? Du kan bruke ^ å ekskludere karakterene.

For å få alle produktene som starter med alle andre tegn bortsett fra A til M, kan vi for eksempel gjøre følgende:

Velg * fra produkter der navn som '[^a-m]%';

Resultatene bør ekskludere bokstaven A til M.

Eksempel 9

Anta at du vil finne produktene der navnet inneholder et tall? Vi kan kjøre et spørsmål som vist:

Velg * fra produkter der navn som '%[0-9]';

Resultatet skal være som vist:

Merk: Du kan bruke den ikke som operatøren til å negere resultatet av det vanlige uttrykket.

Konklusjon

I denne artikkelen lærte du hvordan du bruker vanlige uttrykk i SQL Server ved hjelp av lignende operatør. Vi håper du fant denne artikkelen nyttig. Sjekk ut flere Linux -hint -artikler for tips og informasjon, så kan du lære mer om Regex i SQL Server Docs.