ГОСТ Р И С 0 10303-11 — 2009
12.6.5 Оператор подмножества
Оператор подмножества (<=) принимает два операнда, опредепенных в таблице 19. и выдает
результат типа LOGICAL. Результат принимает значение TRUE тогда и только тогда, когда какой-либо эле
мент е. присутствующий п раз в первом операнде, присутствует не менее п раз во втором операнде.
Результат принимает значение UNKNOWN, если какой-либо из операндов имеет неопределенное (?) значе
ние. В противном случае результат принимает значение FALSE.
Типы данных операндовдолжны быть совместимы (см. 12.11).
Т а б л и ц а 19 — Операторы подмножества и супермножества: типы данных операн
дов
Первый операнд
Второй операнд
BAG
BAG
BAG
SET
SET
BAG
SET
SET
12.6.6 Оператор супермножества
Оператор супермножества (>=) принимает два операнда, определенных в таблице 19. и выдает
результат типа LOGICAL. Результат принимает значение TRUE тогда и только тогда, когда какой-либоэле
мент е. присутствующий п раз во втором операнде, присутствует не менее п раз в первом операнде.
Результат принимает значение UNKNOWN, если какой-либо из операндов имеет неопределенное (?) значе
ние. В противном случае результат принимает значение FALSE.
Типы данных операндовдолжны быть совместимы (см. 12.11).
Выражение Ь >= а должно быть полностью эквивалентно выражению а <= Ь.
12.6.7 Оператор запроса
Оператор запроса QUERY применяет логическое выражение logical_expression по отдельности к
каждому элементу агрегированной структуры и формирует в качестве результата агрегированную структу
ру, содержащую элементы, для которых значением logical_expression было TRUE. В результате форми
руется подмножество исходной агрегированной структуры, все элементы которого соответствуют условию,
представленному логическим выражением.
Синтаксис:
277query_expression = QUERY ’(’ variablejd ’<** aggregate_source *|’
logical_expression’)’ .
170aggregate_source = simple_expression.
254 k>gical_expression = expression .
Правила и ограничения:
a) Элемент variablejd является неявно объявленной переменной в области видимости оператора
запроса.
П р и м е ч а н и е — Данная переменная не должна быть обьявлена где-либо еще и не существует вне
оператора запроса.
b
) Элемент aggrogate_source должен быть представлен агрегированной структурой (ARRAY,
BAG. LIST или SET).
c) Если элемент aggrogate_source имеет неопределенное (?) значение, то оператор возвращает
также неопределенное (?) значение.
d) Третий операнд (logical_expression) должен быть выражением, результат которого имеет тип
данных LOGICAL.
Элементы поочередно извлекают из исходной агрегированной структуры, подставляют в
logical_exprossion вместо va ria b le jdи вычисляют значение logical_expression. Если
logical_expression имеет значение TRUE, то данный элемент добавляют к результату; в противном
случае — не добавляют. Если logical_expression принимает неопределенное (?) значение, то данный
элемент не включают в результирующую агрегированную структуру. Данные действия повторяют для каж-
84