Трафаретный символ sql что это

Примеры, с разными LIKE-операторами с «%» и «_» подстановочными знаками:

Выражение Описание
WHERE name LIKE ‘text%’ Находит любые значения, начинающиеся с «text»
WHERE name LIKE ‘%text’ Находит любые значения, заканчивающиеся на «text»
WHERE name LIKE ‘%text%’ Находит любые значения, которые имеют «text» в любой позиции
WHERE name LIKE ‘_text%’ Находит любые значения, которые имеют «text» во второй позиции
WHERE name LIKE ‘text_%_%’ Находит любые значения, начинающиеся с «text» и длиной не менее 3 символов
WHERE name LIKE ‘text%data’ Находит любые значения, начинающиеся с «text» и заканчивающиеся на «data»

Использование символа %

Следующий оператор SQL выбирает всех пользователей с name, начинающимся с «Т»:

Пример:

Следующий оператор SQL выбирает всех пользователей с именем, содержащим шаблон «То»:

Пример:

Использование подстановочного знака

Следующий оператор SQL выбирает всех пользователей с name, начиная с любого символа, за которым следует «о»:

Пример:

Следующий оператор SQL выбирает всех пользователе с name начиная с «Т», за которым следует любой символ, за которым следует «м», за которым следует любой символ, а затем «с»:

Пример:

Использование подстановочного знака [charlist]

Следующий оператор SQL выбирает всех пользователей с name, начиная с «Т», «Р» или «Е»:

Пример:

Следующий оператор SQL выбирает всех пользователей с name, начиная с «Т», «Р» или «Е»:

Пример:

Использование подстановочного знака [! Charlist]

Два следующих оператора SQL выбирают всех пользователей с помощью name NOT, начинающегося с «Т», «Р» или «E»:

Источник

Предикат LIKE стр. 1

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

Образец Описание
‘abc%’ Любые строки, которые начинаются с букв «abc»
‘abc_’ Строки длиной строго 4 символа, причем первыми символами строки должны быть «abc»
‘%z’ Любая последовательность символов, которая обязательно заканчивается символом «z»
‘%Rostov%’ Любая последовательность символов, содержащая слово «Rostov» в любой позиции строки
‘% % %’ Текст, содержащий не менее 2-х пробелов, например, «World Wide Web»

Найти все корабли, имена классов которых заканчиваются на букву ‘о’

Результатом выполнения запроса будет следующая таблица:

name class launched
Haruna Kongo 1916
Hiei Kongo 1914
Kirishima Kongo 1915
Kongo Kongo 1913
Musashi Yamato 1942
Yamato Yamato 1941

Найти все корабли, имена классов которых заканчиваются на букву ‘о’, но не на ‘go’

Name Class launched
Musashi Yamato 1942
Yamato Yamato 1941

Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:

Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами:

Источник

SQL-Урок 5. Символы подстановки и регулярные выражения (LIKE)

Часто, для фильтрации данных, нам нужно будет осуществить выборку не по точному совпадении условия, а по приближенному значению. То есть когда, например, мы ищем товар, название которого соответствует определенному шаблону или содержит определенные символы или слова. Для таких целей в SQL существует оператор LIKE, который ищет приближенные значения. Для конструирования такого шаблона используются метасимволы (специальные символы для поиска части значения), а именно: «знак процента» (%) или звездочка (*), «символ подчеркивания» (_) или «знак вопроса» (?), «квадратные скобки» ([ ]).

1. Метасимвол знак процента (%) или звездочка (*)

Давайте из нашей таблицы, например, отберем записи, относящиеся только к товарам, содержащих в своем названии слово Skis (лыжи). Для этого составим соответствующий шаблон:

SELECT * FROM Sumproduct WHERE Product LIKE ‘*Skis*’

Как видим, СУБД отобрала только те записи, где в колонке Product были товары, содержащие слово Skis. Также отметим, что в данном примере используется метасимвол «звездочка» (*), поскольку СУБД Access не поддерживает «знак процента» (% ) для оператора LIKE.

2. Метасимвол знак подчеркивания (_) или знак (?)

Знак подчеркивания или вопросительный знак применяется для того, чтобы заменить один символ в слове. Давайте в слове Bikes заменим все гласные буквы на «вопросительный знак» (?) и посмотрим на результат:

SELECT * FROM Sumproduct WHERE Product LIKE ‘B?k?s’

Мы использовали метасимвол «вопросительный знак» (?), поскольку СУБД Access не поддерживает «знак подчеркивания» (_) для оператора LIKE.

3. Метасимвол квадратные скобки ([ ])

Метасимвол «квадратные скобки» ([ ]) используется для одновременного указания набора символов, по которым нужно выполнить поиск.

SELECT * FROM Sumproduct WHERE City LIKE ‘[TN]*’

В примере выше, мы отобрали записи, где в поле City названия городов начинаются с буквы T или N. Также, в данном случае, мы можем использовать еще один метасимвол, который выполняет обратное действие. Добавим в наше регулярное выражение восклицательный знак (!), что будет означать «не равно» (для СУБД Access) или знак степени (^) (для других СУБД).

SELECT * FROM Sumproduct WHERE City LIKE ‘[!TN]*’

То есть, последний созданный нами запрос будет читаться как: выбрать все колонки из таблицы Sumproduct и только те записи, где в поле City названия городов не начинаются на буквы T или N. Дополнительно отметим, что набор букв в метасимволе «квадратные скобки» отвечает только за одну позицию в тексте.

Мы можем получить аналогичный результат, если воспользоваться уже известным нам оператором NOT, однако с восклицательным знаком (!) запись будет короче.

Источник

LIKE (Transact-SQL)

Синтаксические обозначения в Transact-SQL

Синтаксис

ESCAPE и STRING_ESCAPE сейчас не поддерживаются в Azure Synapse Analytics и Система платформы аналитики (PDW).

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

match_expression
Любое допустимое выражение expression символьного типа данных.

pattern
Конкретная строка символов для поиска в match_expression может содержать следующие допустимые символы-шаблоны. Длина значения pattern не может превышать 8000 байт.

Символ-шаблон Описание Пример
% Любая строка, содержащая ноль или более символов. Инструкция WHERE Название LIKE ‘%компьютер%’ выполняет поиск и выдает все названия книг, содержащие слово «компьютер».
_ (подчеркивание) Любой одиночный символ. Инструкция WHERE фамилия_автора LIKE ‘_етров’ выполняет поиск и выдает все имена, состоящие из шести букв и заканчивающиеся сочетанием «етров» (Петров, Ветров и т.п.).
[ ] Любой одиночный символ, содержащийся в диапазоне ([a-f]) или наборе ([abcdef]). Инструкция WHERE Фамилия_автора LIKE ‘[Л-С]омов’ выполняет поиск и выдает все фамилии авторов, заканчивающиеся на «омов» и начинающиеся на любую букву в промежутке от «Л» до «С», например Ломов, Ромов, Сомов и т.п. При выполнении операции поиска в диапазоне символы, включенные в диапазон, могут изменяться в зависимости от правил сортировки параметров сортировки.
[^] Любой одиночный символ, не содержащийся в диапазоне ([^a-f]) или наборе ([^abcdef]). Инструкция WHERE Фамилия_автора LIKE ‘ив[^а]%’ выполняет поиск и выдает все фамилии, начинающиеся на «ив», в которых третья буква отличается от «а».

escape_character
Символ, помещаемый перед символом-шаблоном для того, чтобы символ-шаблон рассматривался как обычный символ, а не как шаблон. Аргумент escape_character является символьным выражением, не имеющим значения по умолчанию и возвращающим результат в виде одного символа.

Типы результата

Boolean

Значение результата

Оператор LIKE возвращает значение TRUE, если аргумент match_expression совпадает с указанным аргументом pattern.

Комментарии

При использовании оператора LIKE для сравнения строк во внимание принимаются все символы строки-шаблона. К значимым символам также относятся начальные и конечные пробелы. Если операция сравнения в запросе должна вернуть все строки, содержащие строки LIKE ‘абв ‘ (с символом пробела на конце), то строка, содержащая «абв» (без пробела), не будет возвращена. Однако завершающие пробелы в выражении, с которым сравнивается шаблон, не учитываются. Если операция сравнения в запросе должна вернуть все строки, содержащие строки LIKE ‘абв’ (без знака пробела на конце), то будут возвращены все строки, содержащие «абв», как с завершающими пробелами, так и без них.

При сравнении строк с помощью оператора LIKE с использованием шаблона, содержащего тип данных char и varchar, могут возникнуть проблемы из-за методов хранения каждого типа данных. В ходе выполнения следующего примера локальная переменная char передается хранимой процедуре, а затем с помощью сравнения с шаблоном выполняется поиск всех сотрудников, чьи фамилии начинаются с указанной последовательности букв.

Процедура из следующего примера выполняется успешно, так как завершающие пробелы к переменной типа varchar не добавляются.

Совпадение с шаблоном с использованием оператора LIKE

Оператор LIKE поддерживает шаблоны в ASCII и Юникоде. Если все аргументы (match_expression, pattern и escape_character, если он указан) имеют символьный тип ASCII, то применяется шаблон ASCII. В случае, когда какой-либо из аргументов имеет тип данных Юникод, выполняется преобразование всех аргументов в Юникод и применяется шаблон Юникод. Если вы используете оператор LIKE с типом данных Юникода (nchar или nvarchar), завершающие пробелы учитываются в отличие от других типов данных (не Юникода). Работа оператора LIKE с данными в Юникоде совместима со стандартом ISO. Принцип работы оператора LIKE с данными ASCII совместим с более ранними версиями SQL Server.

Приведенные ниже примеры поясняют различия между результатами сравнения данных с шаблонами оператора LIKE, представленными в Юникоде и ASCII.

Операции сравнения с помощью оператора LIKE зависят от параметров сортировки. Дополнительные сведения см. в разделе COLLATE (Transact-SQL).

Использование символа-шаблона «%»

Если в операторе LIKE указать символ ‘5%’, то компонент Компонент Database Engine будет искать число «5», за которым следует любая строка с числом символов от нуля и больше.

Использование символов-шаблонов в качестве литералов

Символы-шаблоны могут быть использованы в качестве литералов. Чтобы использовать символ-шаблон в качестве литерала, его необходимо заключать в скобки. В следующей таблице представлены несколько примеров применения ключевого слова LIKE вместе с символами-шаблонами [ ].

Символ Значение
LIKE ‘5[%]’ 5 %
LIKE ‘[_]n’ _n
LIKE ‘[a-cdf]’ a, b, c, d или f
LIKE ‘[-acdf]’ -, a, b, c, d или f
LIKE ‘[ [ ]’ [
LIKE ‘]’ ]
LIKE ‘abc[_]d%’ abc_d и abc_de
LIKE ‘abc[def]’ abcd, abce и abcf

Совпадение с шаблоном с помощью предложения ESCAPE

Если в шаблоне LIKE после escape-символа нет никакого символа, то шаблон является недопустимым и оператор LIKE возвращает значение FALSE. Если символ после escape-символа не является символом-шаблоном, то escape-символ игнорируется, а следующий символ рассматривается как обычный символ в шаблоне. К этим символам-шаблонам относятся: подчеркивание (_), процент (%) и левая квадратная скобка ([), в том случае, если они заключены в квадратные скобки. Escape-символы могут использоваться в квадратных скобках ([ ]), включая: знак вставки (^), дефис (-) и правую квадратную скобку (]).

Символ 0x0000 (char(0)) не определен в параметрах сортировки Windows, и его нельзя включать в LIKE.

Примеры

A. Применение оператора LIKE с символом-шаблоном %

Б. Применение оператора NOT LIKE с символом-шаблоном %

В. Применение предложения ESCAPE

Г. Использование символов-шаблонов [ ]

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

Д. Применение оператора LIKE с символом-шаблоном %

Е. Применение оператора NOT LIKE с символом-шаблоном %

Ж. Применение оператора LIKE с символом-шаблоном _

Источник

like в sql запросе

Оператор SQL LIKE

Оператор Like используется в предложении WHERE для поиска заданного шаблона в столбце.

В сочетании с оператором LIKE используются два подстановочных знака:

Примечание: MS Access использует вопросительный знак (?) вместо знака подчеркивания (_).

Знак процента и подчеркивание также могут быть использованы в комбинации!

LIKE Синтаксис

Совет: Можно также комбинировать любое количество условий с помощью операторов and или or.

Вот несколько примеров, демонстрирующих различные операторы LIKE с подстановочными знаками «%» и «_»:

LIKE Оператор Описание
WHERE CustomerName LIKE ‘a%’ Находит любые значения, которые начинаются с «a»
WHERE CustomerName LIKE ‘%a’ Находит любые значения, которые заканчиваются «a»
WHERE CustomerName LIKE ‘%or%’ Находит любые значения, которые имеют значение «or» в любом положении
WHERE CustomerName LIKE ‘_r%’ Находит все значения, которые имеют значение «r» во второй позиции
WHERE CustomerName LIKE ‘a_%_%’ Находит любые значения, которые начинаются с «a» и длиной не менее 3 символов
WHERE ContactName LIKE ‘a%o’ Находит любые значения, которые начинаются с «a» и заканчиваются на «o»

Демонстрационная база данных

Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico 4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK 5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Примеры в SQL

Следующая инструкция SQL выбирает всех клиентов с CustomerName, начинающейся с «a»:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, заканчивающийся на «a»:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, которые имеют «или» в любой позиции:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, которые имеют «r» во второй позиции:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, который начинается с «a» и длиной не менее 3 символов:

Пример

Следующая инструкция SQL выбирает всех клиентов с ContactName, который начинается с «a» и заканчивается на «o»:

Пример

Следующая инструкция SQL выбирает всех клиентов с CustomerName, который не начинается с «a»:

LIKE — данный оператор используется с условием WHERE для поиска значений по образцу.

Синтаксис SQL LIKE

Пример 1

Есть таблица «Persons»:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого начинается с буквы «s» из таблицы выше.

Для этого используем такой запрос:

«%» — данный знак является маской. Обозначает любые символы.

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Пример 2

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого заканчивается на букву «s» из таблицы выше.

Для этого используем такой запрос:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Пример 3

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого содержит в себе буквы «tav». Не важно, в каком месте будут находиться данные символы, в начале или конце слова.

Для этого используем такой запрос.:

P_Id LastName FirstName Address City
3 Pettersen Kari Storgt 20 Stavanger

Пример 4

Теперь мы хотим выбрать всех лиц, которые живут в городе, имя которого не содержит в себе буквы «tav». Используем ключевое слово NOT.

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

Образец Описание
‘abc%’ Любые строки, которые начинаются с букв «abc»
‘abc_’ Строки длиной строго 4 символа, причем первыми символами строки должны быть «abc»
‘%z’ Любая последовательность символов, которая обязательно заканчивается символом «z»
‘%Rostov%’ Любая последовательность символов, содержащая слово «Rostov» в любой позиции строки
‘% % %’ Текст, содержащий не менее 2-х пробелов, например, «World Wide Web»

Найти все корабли, имена классов которых заканчиваются на букву ‘о’

Результатом выполнения запроса будет следующая таблица:

name class launched
Haruna Kongo 1916
Hiei Kongo 1914
Kirishima Kongo 1915
Kongo Kongo 1913
Musashi Yamato 1942
Yamato Yamato 1941

Найти все корабли, имена классов которых заканчиваются на букву ‘о’, но не на ‘go’

Name Class launched
Musashi Yamato 1942
Yamato Yamato 1941

Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:

Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами:

Источник

Читайте также:  Тянет мышцу на ноге ниже колена что делать
Новостной портал