Funções de Valores Numéricos – ceiling
Aplica-se: 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 de base numérica, xs:float, xs:double ou xs:decimal, o tipo de retorno será o mesmo que o tipo $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 de XQuery em relação a instâncias XML armazenadas em várias colunas de tipo xml no banco de dados AdventureWorks.
R. 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 ceiling 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.
Instructions é uma coluna do 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.
durante... return é uma construção 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.