Поделиться через


Функции с числовыми значениями — 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.

См. также

Функция пола (XQuery)
циклический функция (XQuery)