Share via


Funções de Valores Numéricos – ceiling

Aplica-se a:SQL Server

Retorna o menor número sem uma parte fracionária que não seja menos que o valor de seu argumento. Se o argumento for uma sequência vazia, ele retornará a sequência vazia.

Sintaxe

  
fn:ceiling ( $arg as numeric?) as numeric?  

Argumentos

$arg
Número ao qual a função é aplicada.

Comentários

Se o tipo de $arg for um dos três tipos base numéricos, xs:float, xs:double ou xs:decimal, o tipo de retorno será o mesmo que o tipo de $arg .

Se o tipo de $arg for um tipo derivado de um dos tipos numéricos, o tipo de retorno será o tipo numérico base.

Se a entrada para as funções fn:floor, fn:ceiling ou fn:round for xdt:untypedAtomic, ela será implicitamente convertida em xs:double.

Qualquer outro tipo gera um erro estático.

Exemplos

Este tópico fornece exemplos XQuery em instâncias XML armazenadas em várias colunas de tipo xml no banco de dados AdventureWorks.

a. Usando a função ceiling() XQuery

Para o modelo de produto 7, essa consulta retorna uma lista de locais de centro de trabalho no processo de fabricação do modelo de produto. Para cada local de centro de trabalho, a consulta retorna a ID do local, as horas de trabalho e o tamanho de lote, se documentados. A consulta usa a função de teto para retornar as horas de trabalho como valores do tipo 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  

Observe o seguinte na consulta anterior:

  • O prefixo do namespace AWMI significa Adventure Works Manufacturing Instructions. Esse prefixo se refere ao mesmo namespace usado no documento sendo examinado.

  • As instruções são uma coluna de tipo xml . Portanto, o método query() (tipo de dados XML) é usado para especificar XQuery. A instrução XQuery é especificada como o argumento para o método de consulta.

  • Para... return é um constructo de loop. Na consulta, o loop for identifica uma lista de <elementos Location> . Para cada local do centro de trabalho, a instrução return no loop for descreve o XML a ser gerado:

    • Um <elemento Location> que tem atributos LocationID e LaborHrs. A expressão correspondente dentro dos colchetes ({ }) recupera os valores exigidos do documento.

    • A expressão { $i/@LotSize } recupera o atributo LotSize do documento, se presente.

    • Este é o resultado:

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"/>  

Limitações de implementação

Estas são as limitações:

  • A função ceiling() mapeia todos os valores inteiros para xs:decimal.

Consulte Também

Função floor (XQuery)
Função round (XQuery)