какой знак в запросах с использованием like соответствует произвольному количеству символов в строке

Предикат 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 LIKE для поиска строки с заданными символами

Применение предиката LIKE с простыми условиями

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

Пример 1. Вывести спектакли, названия которых начинаются со слова ‘King’.

Пишем запрос в котором с предикатом LIKE используем выражение ‘King%’:

В результате выполнения запроса будет выведена таблица с одной строкой:

Пример 2. Вывести спектакли, названия которых начинаются с буквы ‘O’ и содержат 7 символов.

Пишем запрос в котором с предикатом LIKE используем выражение ‘O______’ (подчёркивание проставлено 6 раз):

В результате выполнения запроса будет выведена таблица с одной строкой:

Пример 3. Вывести спектакли, названия которых заканчиваются буквой ‘a’.

Пишем запрос в котором с предикатом LIKE используем выражение ‘%a’ (подчёркивание проставлено 6 раз):

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

Matilda
Antony and Cleopatra

Пример 4. Вывести спектакли, в названии которых содержится слово «War», например, такие как «The War That Never Ends», «The Wars of the Roses», но не «Howards End».

Пишем запрос в котором с предикатом LIKE используем выражение ‘%War%’:

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

The Wars of the Roses
The War That Never Ends

Пример 5. Вывести спектакли, в названиях которых содержится не менее пяти пробелов.

Пишем запрос в котором с предикатом LIKE используем выражение ‘% % % % % %’:

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

Источник

Условия запросов. Часть 2: оператор LIKE

В части 1 этого трехсерийного ряда мы рассматривают базовый пример использования критериев в запросе, чтобы более подробно задать вопрос запроса. Это очень хорошо, если вы точно знаете, что ищите. Но что делать, если вы хотите увидеть неначертные совпадения — скажем, все, чьи фамилии начинаются с «Th?». Вам повезло: в Access есть мощные средства, которые можно использовать в условиях запроса для извлечения неиспольстиковых совпадений: поддиактные знаки и оператор LIKE.

Поддиавные знаки

Если вы когда-либо играли в игру, вы можете угадать, что делать с подменю: их можно заменить другими символами. В любой базе данных можно использовать только пять поддиавных знаков. Пять из них соответствуют стандарту ANSI-89, а остальные соответствуют стандарту ANSI-92. каждая база данных поддерживает один стандартный или другой, но не обе. Вы можете задать стандарт ANSI.

Знаки ANSI-89

Соответствует любому количеству символов.
Звездочку можно использовать в любом месте строки символов.

По этой причине будет по-настоящему найти «что», «белое» и «зачем», но не «некоторое» или «часы».

Соответствует любому одиночному символу алфавита.

По найму будут найти «ст?ст?», «колокольчик» и «счет»

Используется вместе с другими символами (заключенными в скобки).
Соответствует любому одиночному символу, указанному в квадратных скобках.

По метке «ст[ оу] ст» будут найти «ст» и «колокольчик», но не «счет»

Используется в скобках вместе с другими символами.
Соответствует любому символу, не указанному в квадратных скобках.

b[! ст ] ll найдет «счет» и «ст», но не «ст», «ст» или «колокольчик»

Используется в скобках вместе с другими символами.
Соответствует любому символу из диапазона.
Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

Поиск[а-ы]н находит «плохое», «bbd» и «bcd»

Соответствует любому цифровому символу.

1#3 находит 103, 113, 123

Знаки ANSI-92

Соответствует любому количеству символов.
Может использоваться в качестве первого или последнего символа в строке символов.

wh % находит то, что, белое и почему, но не через некоторое время или смотреть.

Соответствует любому одиночному символу алфавита.

B_ll поимки «стюл», «колокольчик» и «счет»

Используется вместе с другими символами.
Соответствует любому одиночному символу, указанному в квадратных скобках.

По метке «ст[ оу] ст» будут найти «ст» и «колокольчик», но не «счет»

Используется в скобках вместе с другими символами.
Соответствует любому символу, не указанному в квадратных скобках.

По найму ст[^ оу ] будут будут найти «ст» и «ст», но не «ст», «ст» или «колокольчик»

Используется в скобках вместе с другими символами.
Соответствует любому символу из диапазона.
Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

Пои[а-ы]н находит «плохое», «bbd»

Оператор LIKE

В любом критерии, где используются поддиавные знаки, в Access требуется слово «Нравится». Оператор LIKE используется непосредственно перед строкой, содержаной поддиавные знаки. Access также требуется, чтобы строка была окружена кавычками. Например, чтобы найти соответствие текстовым данным с буквой T, используйте такое выражение:

В последних версиях Access добавляет оператор LIKE и кавычка, если вы их опустить. Поэтому если вы используете выражение *t* Access изменяет его на Like «*t*» при запуске запроса или перемещение курсора за пределы критерия.

См. like и поддиавные знаки в действии

Если вы хотите посмотреть видеоролик, демонстрирующий использование этих инструментов, посмотрите этот видеоролик с YouTube в области «Нравится» и поддиавными знаками в условиях запроса Access.

Далее в части 3 этого трехсерийного ряда: запрос на ввод данных с помощью параметра.

Источник

SQL Оператор LIKE

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» и заканчиваются «о»

Демо база данных

Ниже приведен выбор из таблицы «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 LIKE

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

Пример

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

Пример

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

Пример

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

Пример

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

Пример

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

Пример

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

Источник

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 с символом-шаблоном _

Источник

Читайте также:  что делать если желтеют листья у орхидеи но цветет
Сказочный портал