Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает наименьшее целое число, которое не меньше значения, переданного как аргумент функции. Если аргумент представляет собой пустую последовательность, то возвращается пустая последовательность.
Синтаксис
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 этот запрос вернет список адресов цехов, участвующих в производстве продуктов этой модели. Для каждого адреса цеха запрос вернет идентификатор адреса, рабочее время и размер территории, если они указаны. В запросе функция ceiling используется для возвращения рабочего времени в виде значений типа decimal.
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). Этот префикс именует то же пространство имен, что используется и в документе, к которому строится запрос.
Столбец Instructions относится к типу xml. Поэтому для определения запроса XQuery используется метод query() (тип данных XML). Инструкция XQuery задана как аргумент метода query.
for ... return — конструкция цикла. В этом запросе цикл for определяет список элементов <Location>. Для каждого адреса цеха инструкция return цикла for описывает XML-код, который будет создан:
Элемент <Location> с атрибутами LocationID и LaborHrs. Соответствующее выражение в фигурных скобках ({ }) получает запрашиваемые значения из документа.
Выражение { $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"/>
Ограничения реализации
Существуют следующие ограничения:
- Функция ceiling() сопоставляет все целые значения с типом xs:decimal.