Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:SQL Server
Возвращает из последовательности атомарных значений, $arg, один элемент, значение которого меньше, чем все остальные.
Синтаксис
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Аргументы
$arg
Последовательность элементов, из которой необходимо вернуть минимальное значение.
Замечания
Все типы атомизованных значений, передаваемых в min(), должны быть подтипами одного базового типа. Допустимые базовые типы — это типы, поддерживающие операцию gt . Эти типы включают в себя три встроенных базовых численных типа, базовые типы даты-времени, а также xs:string, xs:boolean, xdt:untypedAtomic. Значения типа xdt:untypedAtomic приводятся к типу xs:double. Если имеется смесь этих типов или передаются значения других типов, возникает статическая ошибка.
Результат min() получает базовый тип переданных типов, например xs:double в случае xdt:untypedAtomic. Если вход статически пуст, подразумевается пустое значение и возвращается статическая ошибка.
Функция min() возвращает одно значение в последовательности, которая меньше, чем любая другая в входной последовательности. Для значений xs:string используются параметры сортировки кодовых точек Юникода по умолчанию. Если значение xdt:untypedAtomic не может быть приведение к xs:double, значение игнорируется в входной последовательности, $arg. Если вход — это динамически вычисляемая пустая последовательность, возвращается пустая последовательность.
Примеры
В этом разделе приведены примеры XQuery для экземпляров XML, хранящихся в различных столбцах типа XML в базе данных AdventureWorks.
А. Использование функции min() языка XQuery для поиска расположения цеха с наименьшим количеством рабочих часов
Следующий запрос в процессе производства модели продукта (ProductModelID=7) получает все расположения цехов с наименьшим количеством рабочих часов. Обычно возвращается одно расположение, как показано далее. Если несколько расположений имеют одинаковое количество рабочих часов, возвращаются все.
select ProductModelID, Name, Instructions.query('
declare namespace AWMI=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $Location in /AWMI:root/AWMI:Location
where $Location/@LaborHours =
min( /AWMI:root/AWMI:Location/@LaborHours )
return
<Location WCID= "{ $Location/@LocationID }"
LaborHrs= "{ $Location/@LaborHours }" />
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
Обратите внимание на следующие данные из предыдущего запроса:
- Ключевое слово пространства имен в прологе XQuery определяет префикс пространства имен. Данный префикс затем используется в теле XQuery.
Текст XQuery создает XML-файл с элементом <Location> с атрибутами WCID и WorkHrs .
- Запрос также получает номер ProductModelID и значения имени.
Результат:
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
Ограничения реализации
Существуют следующие ограничения:
Функция min() сопоставляет все целые числа с xs:decimal.
Функция min() для значений типа xs:duration не поддерживается.
не поддерживаются последовательности, в которых смешиваются типы на основе разных базовых типов;
Синтаксический параметр для указания параметров сортировки не поддерживается.