max (XQuery)

Из последовательности атомарных значений $arg возвращает один элемент с наибольшим значением.

Синтаксис

fn:max($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?

Аргументы

  • $arg
    Последовательность атомарных значений, из которой требуется вернуть максимальное значение.

Замечания

Все типы атомарных значений, передаваемые функции max(), должны являться подтипами одного и того же базового типа. Допускаются базовые типы, поддерживающие операцию gt. К этим типам относятся три встроенных базовых численных типа, базовые типы даты-времени, а также xs:string, xs:boolean и xdt:untypedAtomic. Значения типа xdt:untypedAtomic приводятся к типу xs:double. Если передана смесь из этих типов или в последовательности обнаружены значения других типов, возникает статическая ошибка.

Результатом выполнения функции max() является базовый тип переданных типов, например xs:double в случае использования xdt:untypedAtomic. Если входная последовательность статически пуста, подразумевается пустое значение и возвращается статическая ошибка.

Функция max() возвращает из последовательности одно значение, наибольшее из всех имеющихся. Для значений xs:string используются параметры сортировки кодовых точек Юникода по умолчанию. Если значение типа xdt:untypedAtomic не может быть приведено к типу xs:double, во входной последовательности $arg оно пропускается. Если вход является динамически вычисляемой пустой последовательностью, возвращается пустая последовательность.

Примеры

В этом подразделе приведены примеры запросов XQuery к экземплярам XML-документов, которые хранятся в различных столбцах типа xml в базе данных AdventureWorks. Обзор каждого из этих столбцов см. в разделе Представление типов XML-данных в базе данных AdventureWorks.

А. Использование XQuery-функции max() для поиска в производственном процессе цехов с наибольшим количеством рабочих часов

Запрос, представленный в разделе min function (XQuery), может быть изменен для работы с функцией max().

Ограничения реализации

Существуют следующие ограничения:

  • Функция max() сопоставляет все целочисленные значения с типом xs:decimal.

  • Функция max() не поддерживается для значений типа xs:duration.

  • Не поддерживаются последовательности, в которых смешиваются типы на основе разных базовых типов.

  • Не поддерживается синтаксический параметр для указания параметров сортировки.

См. также

Справочник