Функции с числовыми значениями — ceiling
Область применения: SQL Server
Возвращает наименьшее целое число, которое не меньше значения, переданного как аргумент функции. Если аргумент представляет собой пустую последовательность, то возвращается пустая последовательность.
Синтаксис
fn:ceiling ( $arg as numeric?) as numeric?
Аргументы
$arg
Число, к которому применяется функция.
Замечания
Если тип $arg является одним из трех числовых базовых типов, xs:float, xs:double или xs:decimal, возвращаемый тип совпадает с типом $arg .
Если тип $arg является типом, производным от одного из числовых типов, возвращаемый типом является базовым числовым типом.
Если входные данные для fn:floor, fn:ceiling или fn:round функций xdt:untypedAtomic, он неявно приведение к xs:double.
Использование любого другого типа вызовет статическую ошибку.
Примеры
В этом разделе приведены примеры XQuery для экземпляров XML, хранящихся в различных столбцах типа XML в базе данных AdventureWorks.
А. Использование функции XQuery ceiling()
Для модели продуктов 7 этот запрос вернет список адресов цехов, участвующих в производстве продуктов этой модели. Для каждого адреса цеха запрос вернет идентификатор адреса, рабочее время и размер территории, если они указаны. Запрос использует функцию потолка для возврата часов труда в качестве значений десятичного типа.
SELECT ProductModelID, Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $i in /AWMI:root/AWMI:Location
return
<Location LocationID="{ $i/@LocationID }"
LaborHrs="{ ceiling($i/@LaborHours) }" >
{
$i/@LotSize
}
</Location>
') AS Result
FROM Production.ProductModel
WHERE ProductModelID=7
Обратите внимание на следующие данные из предыдущего запроса:
Префикс пространства имен AWMI означает «Adventure Works Manufacturing Instructions» (производственные инструкции Adventure Works). Этот префикс именует то же пространство имен, что используется и в документе, к которому строится запрос.
Инструкции — это столбец типа XML . Поэтому метод query() (тип данных XML) используется для указания XQuery. Инструкция XQuery задана как аргумент метода query.
для... return — это конструкция цикла. В запросе цикл для определения списка <элементов Location> . В каждом расположении центра работы инструкция return в цикле описывает xml для создания:
Элемент <Location с атрибутами LocationID> и WorkHrs. Соответствующее выражение в фигурных скобках ({ }) получает запрашиваемые значения из документа.
Выражение {$i/@LotSize } извлекает атрибут LotSize из документа, если он присутствует.
Результат:
ProductModelID Result
-------------- ------------------------------------------------------
7 <Location LocationID="10" LaborHrs="3" LotSize="100"/>
<Location LocationID="20" LaborHrs="2" LotSize="1"/>
<Location LocationID="30" LaborHrs="1" LotSize="1"/>
<Location LocationID="45" LaborHrs="1" LotSize="20"/>
<Location LocationID="60" LaborHrs="3" LotSize="1"/>
<Location LocationID="60" LaborHrs="4" LotSize="1"/>
Ограничения реализации
Существуют следующие ограничения:
- Функция потолок () сопоставляет все целые значения с xs:decimal.