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

Скрыть все

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

Знак (знаки) в шаблоне Соответствия в выражении
Вопросительный знак (?) или знак подчеркивания (_) Один любой знак
Звездочка (*) или процент (%) Любое количество символов или их отсутствие
# Любая цифра (0 – 9)
[ список_символов ] Любой символ, входящий в список_символов
[! список_символов ] Любой символ, не входящий в список_символов

Для поиска соответствующего символа в выражении можно использовать группу из одного или нескольких символов (список_символов), заключенную в квадратные скобки ([ ]). При этом список_символов может содержать практически любой символ из набора ANSI, включая цифры. При использовании специальных символов для поиска других специальных символов, таких как открывающая скобка ([), вопросительный знак (?), знак решетки (#) и звездочка (*), необходимо заключать их в квадратные скобки. Закрывающую скобку (]) при поиске нельзя использовать в группе символов, но можно искать как отдельный символ и размещать вне группы символов.

Помимо простого списка символов, заключенного в квадратные скобки, в списке_символов может быть указан диапазон символов. Для разделения верхней и нижней границ диапазона используется дефис (-). Например, использование конструкции [A-Z] в шаблоне приведет к нахождению соответствия, если соответствующий символ выражения содержит любую из прописных букв от A до Z. В квадратных скобках можно указать несколько диапазонов без пробелов между ними. Например, конструкция [a-zA-Z0-9] соответствует любому алфавитно-цифровому символу.

Важно помнить, что подстановочные знаки процента (%) и подчеркивания (_) языка ANSI SQL доступны только при использовании с ядром базы данных Microsoft Access и поставщиком Microsoft OLE DB для Access. При использовании в Access или DAO они интерпретируются как текстовые константы.

Ниже указаны другие важные правила нахождения соответствия с шаблонами.

Восклицательный знак (!) в начале списка_знаков означает, что соответствие устанавливается, если любой символ, отсутствующий в списке_знаков, найден в выражении. При использовании вне скобок восклицательный знак соответствует сам себе.

Для поиска соответствия самому себе дефис (-) можно использовать в начале (после восклицательного знака, если тот используется) или в конце списка_символов. В любом другом месте дефис указывает диапазон символов ANSI.

В диапазоне символы должны быть указаны в порядке возрастания (A-Z или 0-100). [A-Z] — правильный шаблон, [Z-A] — неправильный.

Последовательность символов [ ] пропускается; она считается пустой строкой ("").

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

Условие Результат
> 234 Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие < 234.
>= "Новосибирск" Возвращает все записи от "Новосибирск" до конца алфавита.
Between #02.02.2007# And #12.01.2007# Возвращает даты между 2-фев-07 и 1-дек-07 (ANSI-89). Если в базе данных используются подстановочные знаки ANSI-92, вместо знака # следует использовать одинарные кавычки ('). Пример: Between '02.02.07' And '01.12.07'.
Not "Германия" Находит все записи, в которых содержимое поля не совпадает точно со строкой "Германия". Согласно этому условию будут возвращены записи, содержащие дополнительный текст кроме слова "Германия", например "Германия (евро)" или "Европа (Германия)".
Not "Т*" Находит все записи, кроме тех, которые начинаются с буквы "Т". Если в базе данных используются подстановочные знаки ANSI-92, используйте знак процента (%) вместо знака звездочки (*).
Not "*т" Находит все записи, которые не оканчиваются на букву "т". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
In(Канада,Великобритания) Находит все записи в списке со словами "Канада" или "Великобритания".
Like "[А-Г]*" Находит в поле с типом данных "Текстовый" все записи, начинающиеся с букв "А-Г". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Like "*ар*" Находит все записи, которые содержат сочетание букв "тр". Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%).
Like "Андрей Гладки?" Находит все записи, начинающиеся с имени "Андрей" и содержащие вторую строку из 7 букв, из которых 6 букв составляют начало фамилии "Гладки", а последняя буква неизвестна (на это указывает вопросительный знак). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания (_).
#02.02.2007# Будут найдены все записи за 2 февраля 2007 г. Если в базе данных применяется набор подстановочных знаков ANSI-92, необходимо заключить дату в одинарные кавычки вместо знаков решетки (#), например: '02.02.07'.
< Date() - 30 Возвращает все даты, которые более чем на 30 дней раньше текущей даты.
Date() Возвращает все записи, содержащие текущую дату.
Between Date() And DateAdd("M", 3, Date()) Возвращает все записи с датой, которая находится между текущей датой и датой, которая на 3 месяца позже текущей.
Is Null Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение.
Is Not Null Возвращает все записи, содержащие непустое значение.
"" Возвращает все записи, содержащие строку нулевой длины. Такие строки обычно используются, когда поле обязательно должно иметь значение, но это значение еще неизвестно. Например, поле может содержать номер факса, но некоторые заказчики могут не иметь устройств факсимильной связи. В этом случае вместо номера факса можно ввести пару двойных кавычек без пробела между ними ("").

Примеры

1. Not Like "К*" And Not Like "С*" — найти все записи, которые не содержат слов, начинающихся с К или С.

2. >"К*" And Not Like "С*" — найти все записи начинающиеся с буквы К и, которые не содержат слов, начинающихся с К или С.

3. Like "???ге*" — найти все слова, у которых 4и 5 буквы равны ге.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: