Поделиться через


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

Обновлен: Ноябрь 2007

Можно выполнять поиск по столбцам данных и выражениям с использованием подстановочных знаков. Например, можно выполнить поиск всех сотрудников, фамилия которых начинается с букв "Ива" или заканчивается буквами "ов".

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

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

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

Подстановочный знак

Значение

Знак процента (%)

От нуля знаков в этой позиции.

Знак подчеркивания (_)

Один знак в этой позиции.

Например, для поиска всех фамилий, которые начинаются с букв "Van", можно задать условие поиска LIKE 'Van%'. Для поиска таких фамилий, как "Jan", "Jen" и "Jon", можно ввести условие поиска LIKE 'J_n'.

Поиск по символам, используемым как подстановочные знаки

В некоторых случаях может возникнуть необходимость выполнить поиск по строке, содержащей один из знаков, который является подстановочным. Например, может потребоваться найти все публикации в таблице titles, которые содержат в заголовке текст "10%". Так как знак процента (%) является частью искомой строки, необходимо указать, что в данном случае он должен рассматриваться как литерал, а не подстановочный знак.

При поиске знаков, которые могут обрабатываться как подстановочные знаки, можно указать escape-знак. Escape-знак следует поместить непосредственно перед знаком "%" или "_", который должен обрабатываться как литерал. Чтобы указать escape-знак, включите предложение ESCAPE сразу после условия поиска LIKE. Это можно выполнить в столбце "Условия" в области условий или области SQL.

Например, предположим, что нужно найти все издания, которые содержат в заголовке текст "10%". Предположим также, что нужно определить знак решетки (#) как escape-знак, что позволит вставить знак "#" перед знаком "%", который должен обрабатываться как литерал. В этом случае можно ввести в области условий следующую строку:

LIKE '%10#%%' ESCAPE '#'

В итоге предложение WHERE в инструкции SQL будет иметь следующий вид:

WHERE title LIKE '%10#%%' ESCAPE '#'
069b0htd.alert_note(ru-ru,VS.90).gifПримечание.

Escape-знаки определяются только в области SQL.

Поиск по столбцам с типом данных даты и времени

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

069b0htd.alert_note(ru-ru,VS.90).gifПримечание.

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

Например, в базе данных Microsoft SQL Server можно использовать следующее предложение LIKE для поиска всех строк, в которых дата приходится на 1994 год:

LIKE '%1994%'

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

LIKE 'Jan%'

Точный формат строк, которые можно использовать для поиска по столбцам данных с типом даты и времени, зависит от конкретной базы данных.

069b0htd.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

Выражение поиска

Описание

Примеры

LIKE 'Van%'

Поиск значений, начинающихся с "Van".

Vann, Van Beeck, Vanderhorn

LIKE 'J%n'

Поиск значений, начинающихся с буквы "J" и заканчивающихся буквой "n".

Jon, Johnson, Jason, Juan

LIKE '%son'

Поиск значений, заканчивающихся на "son".

Son, Anderson

LIKE '%sam%'

Поиск значений, в которых есть текст "sam".

Sam, Samson, Grossam

LIKE '%Mar%'

Поиск значений в столбце даты и времени, которые приходятся на март, независимо от года.

1 марта 94, 1 марта 1992 года

LIKE '%1994%'

Поиск значений в столбце даты и времени для года 1994.

12 января 94, 1 января 1994 года

LIKE 'Mac_'

Поиск значений, состоящих из четырех знаков, первые три из которых — "Mac".

Mack, Macs

LIKE '_dam'

Поиск значений, состоящих из четырех знаков, последние три из которых — "dam".

Adam, Odam

LIKE '%s_n'

Поиск значений, где в конце находятся знаки "s" и "n", между которыми расположен любой один знак, а перед которыми — любое количество знаков.

Anderson, Andersen, Johnson, san, sun

См. также

Другие ресурсы

Конструирование запросов и представлений

Ссылка (визуальные инструменты работы с базами данных)