Sorok keresése különleges karakterekkel az SQL Server alkalmazásban

Sorok keresése különleges karakterekkel az SQL Server alkalmazásban
Sorok keresése különleges karakterekkel az SQL Server alkalmazásban

Videó: Sorok keresése különleges karakterekkel az SQL Server alkalmazásban

Videó: Sorok keresése különleges karakterekkel az SQL Server alkalmazásban
Videó: Plumbers Don't Wear Ties (Panasonic 3DO) - Angry Video Game Nerd (AVGN) - YouTube 2024, November
Anonim

A programozási probléma hibaelhárítása során ma észrevettem, hogy nem használhatsz olyan LIKE karakterláncokat, amelyek speciális karaktereket tartalmaznak, például% vagy _, speciális szintaxis használata nélkül. A probléma feltárása csak néhány percet vett igénybe, de a szintaxis megemlítése mindig könnyebb, ha írsz róla.

Tehát igen, ez a hozzászólás kizárólag az én hasznom. Remélhetőleg ez segít valaki másnak is.

Tegyük fel, hogy olyan mezőket szeretne megtalálni, amelyek tartalmazzák a "100%" szöveget, így összeállíthatja ezt a lekérdezést:

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

Ahelyett, hogy mit szeretne, kap minden olyan sorokat, amelyek "100" -t tartalmaznak, valamint a "100%" értékű sorokat.

A probléma az, hogy az SQL Server a százalékos jelet, az aláhúzást és a szögletes zárójeleket speciális karakterekként használja. Egy LIKE lekérdezésben egyszerűen nem használhatja őket egyszerű karakterként anélkül, hogy elkerülné őket.

Négyzetes konzolos menekülés

A% vagy _ szögletes zárójelekkel körülvesíthatja az SQL Server-t, hogy a benne lévő karakter egy szabályos karakter.

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

T-SQL ESCAPE szintaxis

Alternatív megoldásként hozzáadhatja az ESCAPE operátort a lekérdezéshez, és hozzáadhatja a karaktert az elhagyni kívánt érték előtt.

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

A lekérdezés ESCAPE '' része azt mondja az SQL motornak, hogy értelmezze a karaktert a karakter helyett karakter helyett helyettesítő karakter helyett.

Személy szerint a második módszert könnyebben kezelhetem, és használhatod a szögletes zárójelet is.

Ajánlott: