/ / Etsi rivejä, joissa on erikoismerkkejä SQL Serveristä

Etsi rivejä, joissa on erikoismerkkejä SQL Serveristä

Vianmääritys ohjelmointiongelmasta tänäänHuomasin, että et voi käyttää LIKE-hakua merkkijonoissarakkeissa, jotka sisältävät erikoismerkkejä, kuten% tai _, ilman erityistä syntaksia. Ongelman selvittäminen kesti vain muutaman minuutin, mutta syntaksin muistaminen on aina helpompaa, jos kirjoitat siitä.

Joten kyllä, tämä viesti on tarkoitettu vain hyödyksi. Toivottavasti se auttaa myös joku muu.

Oletetaan, että haluat löytää kentät, joissa on teksti “100%”, joten laitat tämän kyselyn yhteen:

VALITSE * taulukonimestä WHERE-kentän NIMEKSI "% 100 %%"

Halutun sijaan saat kaikki rivit, joissa on ”100”, samoin kuin rivit, jotka sisältävät ”100%”.

Ongelmana on, että SQL Server käyttää prosenttimerkkejä, alaviivoja ja hakasulkeita erikoismerkeinä. Et voi yksinkertaisesti käyttää niitä selvänä merkkinä LIKE-kyselyssä pakenematta niitä.

Neliön kiinnike Escape

Voit ympärittää% tai _ hakasulkeilla kertoaksesi SQL Serverille, että sisällä oleva merkki on säännöllinen merkki.

VALITSE * taulukonimestä WHERE-kentän NIMI '% 100 [%]%'

T-SQL ESCAPE -sintaksi

Vaihtoehtoisesti voit liittää ESCAPE-operaattorin kyselyyn ja lisätä merkin ennen arvoa, josta haluat paeta.

VALITSE * taulukonimestä WHERE-kentän NIMEKSI '% 100 %%' ESCAPE ''

Kyselyn ESCAPE-osa käskee SQL-moottorin tulkitsemaan merkin kirjaimellisena merkkinä eikä jokerimerkkinä.

Henkilökohtaisesti mielestäni toinen menetelmä on helpompi käsitellä, ja voit käyttää sitä myös poistumaan hakasulkeesta.