Meklēt rindas ar īpašām rakstzīmēm SQL serverī
Kaut arī problēmu risināšana šodien, es pamanīju, ka nevarat izmantot LIKE meklēšanu virknes slejās, kurās ir īpašas rakstzīmes, piemēram,% vai _, neizmantojot īpašu sintaksi. Problēmas izpēte aizņēma tikai dažas minūtes, bet atceroties sintaksi vienmēr ir vieglāk, ja rakstāt par to.
Tātad, jā, šis amats ir tikai mans labums. Cerams, ka tas arī palīdzēs kādam citam.
Pieņemsim, ka vēlaties atrast jebkādus laukus, kuros ir teksts “100%”, tāpēc jūs apkopojat šo vaicājumu:
SELECT * FROM tablename WHERE lauka nosaukums LIKE '% 100 %%'
Tā vietā, ko vēlaties, jūs saņemsiet visas rindas, kurās ir “100”, kā arī rindas, kurās ir “100%”.
Problēma šeit ir tāda, ka SQL Server izmanto īpašo rakstzīmju procentuālo zīmi, pasvītrojumu un kvadrātiekavas. Jūs vienkārši nevarat tos izmantot kā vienkāršu rakstzīmi LIKE vaicājumā, neizbēgoties no tiem.
Kvadrātveida kronšteins
Jūs varat ieskaut% vai _ ar kvadrātiekavām, lai pastāstītu SQL Server, ka iekšējais raksturs ir parastais raksturs.
SELECT * FROM tablename WHERE lauka nosaukums LIKE '% 100 [%]%'
T-SQL ESCAPE sintakse
Vai arī varat pievienot vaicājumam ESCAPE operatoru un pievienot vērtību pirms vērtības, kuru.
SELECT * FROM tablename WHERE lauka nosaukums LIKE '% 100 %%' ESCAPE '\ t
Vaicājuma ESCAPE daļa norāda SQL dzinējam, ka tā ir jāinterpretē pēc burtiskā \ t.
Personīgi es uzskatu, ka otrā metode ir vieglāk risināma, un jūs varat to izmantot, lai izvairītos no kvadrātiekavas.