Condividi tramite


Funzioni per valori numerici - ceiling

Si applica a: SQL Server

Restituisce il più piccolo numero senza una parte frazionaria e non inferiore al valore del relativo argomento. Se l'argomento è una sequenza vuota, restituisce la sequenza vuota.

Sintassi

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

Argomenti

$arg
Numero al quale viene applicata la funzione.

Osservazioni:

Se il tipo di $arg è uno dei tre tipi di base numerici, xs:float, xs:double o xs:decimal, il tipo restituito corrisponde al tipo $arg .

Se il tipo di $arg è un tipo derivato da uno dei tipi numerici, il tipo restituito è il tipo numerico di base.

Se l'input per le funzioni fn:floor, fn:ceiling o fn:round è xdt:untypedAtomic, viene eseguito il cast implicito a xs:double.

Qualsiasi altro tipo di dati genera un errore statico.

Esempi

In questo argomento vengono forniti esempi di XQuery su istanze XML archiviate in varie colonne di tipo xml nel database AdventureWorks.

R. Utilizzo della funzione booleana XQuery ceiling()

Per il modello di prodotto 7, la query restituisce un elenco dei centri di lavorazione coinvolti nel processo di produzione del modello. Per ogni centro di lavorazione, la query restituisce l'ID, le ore di manodopera e la dimensione del lotto, se documentati. La query usa la funzione ceiling per restituire le ore di lavoro come valori di 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  

Dalla query precedente si noti quanto segue:

  • Il prefisso AWMI è l'acronimo di Adventure Works Manufacturing Instructions e fa riferimento allo stesso spazio dei nomi utilizzato nel documento sul quale viene eseguita la query.

  • Le istruzioni sono una colonna di tipo xml . Pertanto, il metodo query() (tipo di dati XML) viene usato per specificare XQuery. L'istruzione XQuery viene specificata come argomento per il metodo di query.

  • per... return è un costrutto di ciclo. Nella query il ciclo for identifica un elenco di <elementi Location> . Per ogni posizione del centro di lavoro, l'istruzione return nel ciclo for descrive il codice XML da generare:

    • Elemento <Location con attributi LocationID> e LaborHrs. L'espressione corrispondente racchiusa tra parentesi graffe ({ }) recupera i valori necessari dal documento.

    • L'espressione { $i/@LotSize } recupera l'attributo LotSize dal documento, se presente.

    • Risultato:

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

Limitazioni di implementazione

Limitazioni:

  • La funzione ceiling() esegue il mapping di tutti i valori integer a xs:decimal.

Vedi anche

Funzione floor (XQuery)
Funzione round (XQuery)