Есть ли способ добавить функцию сортировки для установки varchar? SQL Server (2012 или 2019)

#sql #sql-server

Вопрос:

У меня есть переменная varchar (max), которая имеет регулярное выражение, первоначально в разделе «Выбор» в аналогичной части можно добавить часть сортировки:

 select name from Names where name like '-., * amp;~`;:''"#/()\' COLLATE Latin1_General_100_BIN2 ESCAPE ''
 

Я пытаюсь получить экранирующее мое регулярное выражение в переменной:

 set @MatchExpression = '-., * amp;~`;:''"#/()\' COLLATE Latin1_General_100_BIN2 ESCAPE ''
 

SQL-сервер выдает мне следующую ошибку «Неправильный синтаксис рядом с ключевым словом «ESCAPE»».

Знаете ли вы, как избежать и добавить СОПОСТАВЛЕНИЕ Latin1_General_100_BIN2 в набор переменных

Комментарии:

1. ESCAPE в этом нет смысла, вы устанавливаете значение переменной, не используя a LIKE .

2. Прежде всего, LIKE реализует простые шаблоны, он не реализует регулярное выражение. Во-вторых, есть только LIKE ESCAPE пункт. Ты не можешь держаться ESCAPE за что попало. Вы можете включить в свою строку escape-последовательность, но тогда вы должны помнить, что ее следует размещать ESCAPE везде, где вы ее используете. Вам лучше использовать LIKE собственные функции для цитирования специальных символов, которые окружают их [ и ] (и только % , _ и [ даже нуждаются в экранировании-нет , " или что-либо еще, что обычно может быть экранировано в строках на других языках).