Претражите редове са специјалним знаковима у СКЛ Серверу
Док смо данас решавали проблем са програмирањем, приметио сам да не можете да користите ЛИКЕ претрагу за низове низова који садрже специјалне знакове као што је% или _ без употребе посебне синтаксе. Проналажење проблема трајало је само неколико минута, али памћење синтаксе је увек лакше ако пишете о томе.
Дакле, да, овај пост је искључиво за мене. Надам се да ће то помоћи и неком другом.
Рецимо да желите да пронађете поља која садрже текст "100%", тако да сте саставили овај упит:
СЕЛЕЦТ * ФРОМ табленаме ВХЕРЕ име поља ЛИКЕ '% 100 %%'
Уместо онога што сте хтели, добићете све редове који садрже "100" као и редове који садрже "100%".
Проблем је у томе што СКЛ Сервер користи знак%, подвлачење и углате заграде као специјалне знакове. Једноставно их не можете користити као обичан карактер у ЛИКЕ упиту без да их избегнете.
Скуаре Брацкет Есцапе
Можете да окружите% или _ са углатим заградама да бисте СКЛ Серверу рекли да је знак унутар њега регуларан знак.
СЕЛЕЦТ * ФРОМ табленаме ВХЕРЕ име поља ЛИКЕ '% 100 [%]%'
Т-СКЛ ЕСЦАПЕ синтакса
Алтернативно, можете да додате оператер ЕСЦАПЕ на ваш упит и додате знак пре вредности коју желите да побегнете.
СЕЛЕЦТ * ФРОМ табленаме ВХЕРЕ име поља ЛИКЕ '% 100%' ЕСЦАПЕ '\ т
ЕСЦАПЕ 'дио упита говори СКЛ механизму да интерпретира знак након слова као знак као замјенски знак \ т.
Лично сматрам да је друга метода лакша за рад, а можете је користити и да бисте избегли квадратну заграду.