Kotisivu » miten » Etsi rivejä, joilla on erikoismerkkejä SQL Serverissä

    Etsi rivejä, joilla on erikoismerkkejä SQL Serverissä

    Vaikka havaitsin ohjelmointiongelman tänään, huomasin, että et voi käyttää LIKE-hakua merkkipylväissä, jotka sisältävät erikoismerkkejä, kuten% tai _, ilman erityistä syntaksi. Ongelman selvittäminen kesti vain muutaman minuutin, mutta syntaksin muistaminen on aina helpompaa, jos kirjoitat siitä.

    Joten kyllä, tämä viesti on vain minun hyödyksi. Toivottavasti se auttaa myös jotakuta muuta.

    Oletetaan, että haluat löytää kentät, jotka sisältävät tekstin "100%", joten koot tämän kyselyn:

    SELECT * FROM tablename WHERE -kentänimi LIKE '% 100 %%'

    Sen sijaan, mitä halusit, saat kaikki rivit, jotka sisältävät ”100” sekä rivit, jotka sisältävät ”100%”.

    Ongelmana tässä on se, että SQL Server käyttää erikoismerkkeinä prosenttimerkkejä, alaviivoja ja neliösulkeita. Et yksinkertaisesti voi käyttää niitä tavallisena merkkinä LIKE-kyselyssä välttämättä niitä.

    Square Bracket Escape

    Voit ympäröi%: n tai _: n neliösulkeilla kertomaan SQL Serverille, että sisäpuolella oleva merkki on tavallinen merkki.

    SELECT * FROM tablename WHERE -kentänimi LIKE '% 100 [%]%'

    T-SQL ESCAPE-syntaksia

    Vaihtoehtoisesti voit liittää ESCAPE-operaattorin kyselyyn ja lisätä merkin ennen poistettavaa arvoa.

    SELECT * FROM tablename WHERE -kentänimi LIKE '% 100 \ t

    Kyselyn ESCAPE-osa kertoo SQL-moottorille tulkitsevan merkin kirjaimellisen merkin \ t.

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