Почетна » како да » Претражите редове са специјалним знаковима у СКЛ Серверу

    Претражите редове са специјалним знаковима у СКЛ Серверу

    Док смо данас решавали проблем са програмирањем, приметио сам да не можете да користите ЛИКЕ претрагу за низове низова који садрже специјалне знакове као што је% или _ без употребе посебне синтаксе. Проналажење проблема трајало је само неколико минута, али памћење синтаксе је увек лакше ако пишете о томе.

    Дакле, да, овај пост је искључиво за мене. Надам се да ће то помоћи и неком другом.

    Рецимо да желите да пронађете поља која садрже текст "100%", тако да сте саставили овај упит:

    СЕЛЕЦТ * ФРОМ табленаме ВХЕРЕ име поља ЛИКЕ '% 100 %%'

    Уместо онога што сте хтели, добићете све редове који садрже "100" као и редове који садрже "100%".

    Проблем је у томе што СКЛ Сервер користи знак%, подвлачење и углате заграде као специјалне знакове. Једноставно их не можете користити као обичан карактер у ЛИКЕ упиту без да их избегнете.

    Скуаре Брацкет Есцапе

    Можете да окружите% или _ са углатим заградама да бисте СКЛ Серверу рекли да је знак унутар њега регуларан знак.

    СЕЛЕЦТ * ФРОМ табленаме ВХЕРЕ име поља ЛИКЕ '% 100 [%]%'

    Т-СКЛ ЕСЦАПЕ синтакса

    Алтернативно, можете да додате оператер ЕСЦАПЕ на ваш упит и додате знак пре вредности коју желите да побегнете.

    СЕЛЕЦТ * ФРОМ табленаме ВХЕРЕ име поља ЛИКЕ '% 100%' ЕСЦАПЕ '\ т

    ЕСЦАПЕ 'дио упита говори СКЛ механизму да интерпретира знак након слова као знак као замјенски знак \ т.

    Лично сматрам да је друга метода лакша за рад, а можете је користити и да бисте избегли квадратну заграду.