Søk etter rader med spesialtegn i SQL Server

Søk etter rader med spesialtegn i SQL Server
Søk etter rader med spesialtegn i SQL Server

Video: Søk etter rader med spesialtegn i SQL Server

Video: Søk etter rader med spesialtegn i SQL Server
Video: How to Speed Up Your Virtual Machine - YouTube 2024, April
Anonim

Mens du feilsøker et programmeringsproblem i dag, la jeg merke til at du ikke kan bruke LIKE å søke etter strengskolonner som inneholder spesialtegn som% eller _ uten å bruke en spesiell syntaks. Å finne ut problemet tok bare noen få minutter, men det er alltid lettere å huske syntaks hvis du skriver om det.

Så ja, dette innlegget er utelukkende til min fordel. Forhåpentligvis vil det hjelpe noen andre også.

La oss si at du vil finne noen felt som inneholder teksten "100%", så du legger sammen dette spørsmålet:

SELECT * FROM tablename WHERE fieldname LIKE ‘%100%%’

I stedet for det du ville ha, får du alle rader som inneholder "100" og radene som inneholder "100%".

Problemet her er at SQL Server bruker prosenttegnet, understreket og firkantede parenteser som spesialtegn. Du kan rett og slett ikke bruke dem som en vanlig karakter i en LIKE spørring uten å rømme dem.

Square Bracket Escape

Du kan omgir% eller _ med firkantede parentes for å fortelle SQL Server at tegnet inni er et vanlig tegn.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’

T-SQL ESCAPE-syntaks

Alternativt kan du legge til ESCAPE-operatøren på forespørselen din, og legge til et tegn før verdien du vil unnslippe.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘’

ESCAPE '' delen av spørringen forteller SQL-motoren å tolke tegnet etter som en bokstav i stedet for som jokertegn.

Personlig finner jeg den andre metoden lettere å håndtere, og du kan også bruke den til å unnslippe en firkantbrakett også.

Anbefalt: