Поиск строк со специальными символами в SQL Server

Поиск строк со специальными символами в SQL Server
Поиск строк со специальными символами в SQL Server

Видео: Поиск строк со специальными символами в SQL Server

Видео: Поиск строк со специальными символами в SQL Server
Видео: Топ 5 скрытых полезных программ Windows 10 - YouTube 2024, Май
Anonim

Несмотря на то, что сегодня устраняем проблему программирования, я заметил, что вы не можете использовать поиск LIKE для строковых столбцов, содержащих специальные символы, такие как% или _, без использования специального синтаксиса. Выяснение проблемы заняло всего несколько минут, но помнить о синтаксисе всегда проще, если вы напишете об этом.

Так что да, этот пост предназначен исключительно для меня. Надеюсь, это поможет кому-то еще.

Предположим, вы хотите найти любые поля, содержащие текст «100%», поэтому вы можете собрать этот запрос:

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

Вместо того, что вы хотели, вы получите все строки, содержащие «100», а также строки, содержащие «100%».

Проблема здесь в том, что SQL Server использует знак процента, подчеркивание и квадратные скобки как специальные символы. Вы просто не можете использовать их как простой символ в запросе LIKE, не избегая их.

Побег квадратного кронштейна

Вы можете окружать квадратные скобки% или _, чтобы сообщить SQL Server, что символ внутри является обычным символом.

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

Синтаксис T-SQL ESCAPE

Кроме того, вы можете добавить оператор ESCAPE в свой запрос и добавить символ перед значением, которое вы хотите избежать.

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

Часть запроса ESCAPE «говорит» SQL-интерпретатору интерпретирует символ после символа «» как буквенного, а не как подстановочный знак.

Лично я считаю, что второй метод легче справиться, и вы можете использовать его, чтобы избежать квадратной скобки.

Рекомендуемые: