Создание запросов 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). [А– Я] является правильным образцом, а [Я– А] – неправильным.
- Квадратные скобки ([ ]) игнорируются; они рассматривается как пустая строка ("").