Оператор LIKE
В отличие от оператора равенства
оператор LIKE позволяет определять частичное совпадение текстовых строк. При этом можно использовать символы шаблона, приведенные в Табл. 2.7.
Табл. 2.7 Символы шаблона
% | Любая строка длиной нуль и более символов. Например, удовлетворяющими условию «%больница%» признаются значения, содержащие строку «больница»:
|
_ | Любой одиночный символ. Например, выражению «О_О» будут удовлетворять все строки, где между буквами «О» располагается любой один символ: «ООО», «ОАО», «О1О» и т.д. Но такая строка, как «ОО», уже не подойдет под это условие. |
[] | Любой одиночный символ, содержащийся в диапазоне или наборе. Диапазон может быть задан, как «0-3» (т.е. любой символ из перечня символов, идущих по порядку 0,1,2,3), «а-в» (а,б,в) и т.д. Набор символов задается строкой: «0126», «ацдб» и т.д. Пример: «больница №[1-2]» – подойдут строки «больница №1» и «больница №2». |
[^] | Применение шаблона аналогично предыдущему, с той разницей, что удовлетворять условию будут символы, НЕ входящие в указанную последовательность. Пример: «больница №[^1-2]» – подойдут строки, где больница не имеет номер 1 или 2: «больница №8» и «больница №6». |
Оператор IN
Оператор возвращает результат проверки вхождения значения первого операнда в перечисление, указанное во втором операнде. Исходный вид выражения с использованием оператора показан на рисунке:
Операнды могут быть указаны путем перетаскивания нужных элементов с панелей инструментов и атрибутов в область соответствующего операнда. Причем перетаскивание на одну из скобок добавляет новый элемент перечисления, а перетаскивание в область элемента перечисления заменяет этот элемент. Одно константное значение может быть введено после двойного клика на области операнда.
Перечисление может состоять из элементов различных типов. Это может быть как перечисление, состоящее из констант, атрибутов, параметров; так и атрибут-коллекция или функция, возвращающая коллекцию значений (например, функции «Условие» или «Выбрать»).
Пример условия с использованием оператора IN:
Оператор доступен только в контекстном меню при редактировании уже существующего выражения.
Оператор IS
Оператор связан с отношениями наследования между сущностями (см. п. 1.1) и позволяет анализировать, на какую именно сущность из дерева наследования указывает атрибут-ссылка.
Для того чтобы включить данный оператор в выражение, нужно сначала перетащить на панель редактирования любой другой оператор например,
и в контекстном меню оператора выбрать пункт <IS>. Выражение при этом примет вид, показанный на рисунке:
По умолчанию в области первого операнда выражения отображается наименование текущей сущности в скобках. При этом область операнда выделена красной рамкой, что означает необходимость выбрать корректный объект. В данном случае корректным объектом будет являться атрибут, соответствующий ссылке на родительскую сущность. Выбор атрибута производится двойным щелчком на имени сущности. Форма диалога выбора атрибута показана на Рис. 2.9., в списке необходимо выбрать атрибут-ссылку на родительскую сущность, имеющий пиктограмму:
Затем в области второго операнда необходимо указать сущность, на которую должен указывать атрибут. Операция возвращает положительное значение, если атрибут-ссылка содержит идентификатор экземпляра указанной сущности или любой сущности-потомка указанной сущности.
См. также выражения, связанные с отношениями наследования – оператор «ExactIS» (п.2.4.5), функция «Поиск по дереву» (п. 2.6.4).
Оператор Exact IS
Действие оператора аналогично действию оператора «IS» (п. 2.4.4) с той разницей, что «Exact IS» возвращает положительное значение только в том случае, если атрибут-ссылка указывает именно на ту сущность, которая задана во втором операнде. Т.е. ссылка на сущность-наследника игнорируется.