Иллюстрированный самоучитель по Microsoft Access 2002

Создание запросов SQL. Сравнение ANSI и Jet SQL.

Подстановочные знаки при сравнении строк

В данном случае речь идет о трех подстановочных знаках, приведенных в табл. 8.7.

Таблица 8.7. Соответствие подстановочных знаков.

Jet SQL ANSI SQL Примечание
? (подчеркивание) Любой одиночный символ
* % Произвольное количество символов
# Не имеет эквивалента Любая цифра от 0 до 9
[список_знаков] Не имеет эквивалента Любой одиночный знак, входящий в список знаков
[! список_знаков] Не имеет эквивалента Любой одиночный знак, не входящий в список знаков

Язык SQL Microsoft Jet поддерживает использование в операторе Like как подстановочных знаков ANSI SQL (_ и #), так и подстановочных знаков ядра Microsoft Jet (? и *). Однако подстановочные знаки ANSI SQL доступны только в режиме ANSI SQL-92, в противном случае они воспринимаются просто как строковые константы. И наоборот, в режиме ANSI SQL-92 подстановочные знаки Jet SQL трактуются как строковые константы. Таким образом, нельзя в одном запросе смешивать эти знаки.

Ниже перечислены важные правила установления совпадения оператором Like.

  • Восклицательный знак (!) в начале списка_знаков означает, что совпадение наступит, если в выражении будет найден любой знак, отсутствующий в списке. Восклицательный знак вне квадратных скобок соответствует самому себе.
  • Знак дефиса (-) можно использовать в начале (после восклицательного знака, если он есть) или в конце списка_знаков для установления соответствия с самим собой. В любом другом месте знак дефиса означает диапазон символов ANSI.
  • Если указан диапазон знаков, его границы должны следовать в возрастающем порядке (А– Я или 0-100). [А– Я] является правильным образцом, а [Я– А] – неправильным.
  • Квадратные скобки ([ ]) игнорируются; они рассматривается как пустая строка ("").
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.