like- это оператор, который используется для проверки соответствия шаблону; т. е. он сравнивает значения столбца с заданным шаблоном. Тип данных такого столбца может быть любым символьным типом или датой. Общая форма оператора like:
column [not] like 'pattern'
Параметр pattern может быть константой типа строки или даты, либо это может быть выражение (включающее и столбцы таблиц), которое должно быть совместимым с типом данных соответствующего столбца. Для заданного столбца сравнение между значением в строке и шаблоном вычисляется в истину, если значение столбца соответствует выражению шаблона.
Некоторые символы в шаблоне, называемые шаблонными или групповыми символами, имеют специфическую интерпретацию. Два из этих символа:
♦ % (знак процента) задает любую последовательность из нуля или более символов;
♦ _ (подчеркивание) задает любой одиночный символ.
В примере 6.17 показано использование шаблонных символов % и _.
В дополнение к символам процента и подчеркивания Transact-SQL поддерживает и другие символы, которые имеют специальное значение при использовании в операторе like. Эти символы ([,] и Л) демонстрируются в примерах 6.18 и 6.19.
Как показано в примере 6.18, квадратные скобки [ ] заключают в себе диапазон или список символов. Порядок, в котором символы появляются в диапазоне, определяется порядком сортировки, который был задан при инсталляции системы.
Символ Л задает отрицание диапазона или списка символов. Этот символ имеет такое значение только при паре квадратных скобок, как показано в примере 6.19.
Любой из шаблонных символов (%, _, [, ] или А), заключенный в квадратные скобки, остается обычным символом. Такая же возможность существует при использовании опции escape. Исходя из этого, оба оператора select в примере 6.21 имеют одно и то же значение.
Оба оператора select отыскивают символ подчеркивания как фактический символ в столбце project name. В первом операторе select этот поиск задается заключением символа подчеркивания в квадратные скобки. Второй оператор select использует некий символ (в примере 6.21 это символ !) в качестве escape-символа. Escape-символ перекрывает значение символа подчеркивания как шаблонного символа и возвращает его интерпретацию как обычного символа. (Результат содержит ноль строк, потому что не существует проекта, в имени которого присутствовал бы символ подчеркивания.)