Meklēt rindās ar īpašām rakstzīmēm SQL Server

Meklēt rindās ar īpašām rakstzīmēm SQL Server
Meklēt rindās ar īpašām rakstzīmēm SQL Server

Video: Meklēt rindās ar īpašām rakstzīmēm SQL Server

Video: Meklēt rindās ar īpašām rakstzīmēm SQL Server
Video: Video Limiter | Effects of After Effects - YouTube 2024, Maijs
Anonim

Plānošanas problēmu traucējumiem šodien es pamanīju, ka jūs nevarat izmantot LIKE meklēšanu virknes slejās, kurās ir speciālās rakstzīmes, piemēram,% vai _, neizmantojot īpašu sintaksi. Izprotot problēmu, notika tikai dažas minūtes, taču sintakses atgādināšana vienmēr ir vieglāka, ja par to rakstāt.

Tātad, jā, šis ziņojums ir tikai mana labā. Cerams, ka tas palīdzēs arī kādam citam.

Pieņemsim, ka vēlaties atrast visus laukus, kuros ir teksts "100%", tāpēc jūs varat apkopot šo vaicājumu:

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

Tā vietā, ko vēlaties, jūs saņemsit visas rindas, kurās ir "100", kā arī rindas, kurās ir "100%".

Problēma ir tāda, ka SQL Server izmanto kā procentu rakstzīmi, pasvītrojumu un kvadrātiekavas kā īpašas rakstzīmes. Jūs vienkārši nevarat tos izmantot kā vienkāršu rakstzīmi LIKE vaicājumā, neizlaižot tos.

Kvadrātveida kronšteins izbēgt

Jūs varat apiet% vai _ ar kvadrātiekavās, lai pateiktu SQL Server, ka rakstzīme iekšā ir regulāra rakstzīme.

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

T-SQL ESCAPE sintakse

Alternatīvi, jūs varat pievienot ESCAPE operatoru uz jūsu vaicājumu un pievienot rakstzīmi pirms vērtības, kuru vēlaties izvairīties.

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

Vaicājuma daļa ESCAPE '' norāda SQL dzinējam interpretēt rakstzīmi pēc kā burtiskā simbola, nevis kā aizstājējzīmi.

Personīgi es uzskatu, ka otrā metode ir vieglāk tikt galā, un jūs varat to izmantot arī, lai izvairītos no kvadrātiekavas.

Ieteicams: