Homepage » hogyan kell » Keressen sorokat az SQL Serverben különleges karakterekkel

    Keressen sorokat az SQL Serverben különleges karakterekkel

    A programozási probléma elhárításakor ma észrevettem, hogy speciális szintaxis használata nélkül nem használhat LIKE keresést olyan karakterlánc oszlopokhoz, amelyek speciális karaktereket tartalmaznak, mint például a% vagy _. A probléma kiszámítása csak néhány percet vett igénybe, de a szintaxis emlékezése mindig könnyebb, ha róla ír.

    Tehát igen, ez a hozzászólás kizárólag az én javamra szolgál. Remélhetőleg segíteni fog valakinek is.

    Tegyük fel, hogy olyan mezőket szeretnénk találni, amelyek tartalmazzák a „100%” szöveget, így összeállítod ezt a lekérdezést:

    SELECT * FROM tablename WHERE mezőnév LIKE '% 100 %%'

    Ahelyett, hogy mit szeretne, megkapja a „100” -ot tartalmazó sorokat, valamint a „100%” -ot tartalmazó sorokat..

    A probléma az, hogy az SQL Server a százalékjelet, aláhúzást és szögletes zárójeleket speciális karakterként használja. Egyszerűen nem használhatja őket egyszerű karakterként egy LIKE lekérdezésben, anélkül, hogy elmenekülne tőlük.

    Szögletes zárójel menekülés

    A% -ot vagy a _-et szögletes zárójelekkel körbevehetjük, hogy az SQL Server azt mondja, hogy a belső karakter rendszeres karakter.

    SELECT * FROM tablename WHERE mezőnév LIKE '% 100 [%]%'

    T-SQL ESCAPE szintaxis

    Alternatívaként az ESCAPE operátort hozzáadhatja a lekérdezéshez, és hozzáadhat egy.

    SELECT * FROM tablename WHERE mezőnév LIKE '% 100 %%' ESCAPE '

    A lekérdezés ESCAPE része azt mondja az SQL-motornak, hogy a karaktert a szó szerinti karakter \ t.

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