Freigeben über


Funktionen für numerische Werte – ceiling

Gilt für:SQL Server

Gibt die kleinste Anzahl ohne Stellen hinter dem Dezimalpunkt zurück, die nicht geringer ist als der Wert des Funktionsarguments. Wenn das Argument eine leere Sequenz ist, wird die leere Sequenz zurückgegeben.

Syntax

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

Argumente

$arg
Anzahl, auf die die Funktion angewendet wird.

Bemerkungen

Wenn der Typ von $arg einer der drei numerischen Basistypen xs:float, xs:double oder xs:decimal ist, ist der Rückgabetyp mit dem $arg-Typ identisch.

Wenn der Typ von $arg ein Typ ist, der von einem der numerischen Typen abgeleitet ist, ist der Rückgabetyp der numerische Basistyp.

Wenn die Eingabe für die Funktionen fn:floor, fn:ceiling oder fn:round xdt:untypedAtomic ist, wird sie implizit in xs:double umgewandelt.

Alle anderen Typen führen zum Generieren eines statischen Fehlers.

Beispiele

Dieses Thema enthält XQuery-Beispiele für XML-Instanzen, die in verschiedenen Xml-Typspalten in der AdventureWorks-Datenbank gespeichert sind.

A. Verwenden der XQuery-Funktion ceiling()

Für Produktmodell 7 gibt die Abfrage eine Liste der Arbeitsplatzstandorte im Produktionsprozess des Produktmodells zurück. Für jeden einzelnen Arbeitsplatzstandort gibt die Abfrage die Standortkennung, die Arbeitsstunden sowie die Losgröße zurück, sofern diese dokumentiert ist. Die Abfrage verwendet die Deckenfunktion , um die Arbeitsstunden als Werte vom Typ decimal zurückzugeben.

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  

Beachten Sie hinsichtlich der vorherigen Abfrage Folgendes:

  • Das AWMI-Namespacepräfix steht für Adventure Works Manufacturing Instructions. Dieses Präfix verweist auf denselben Namespace, der im abgefragten Dokument verwendet wird.

  • Instructions ist eine Spalte vom Typ XML . Daher wird die query()-Methode (XML-Datentyp) verwendet, um XQuery anzugeben. Die XQuery-Anweisung wird als Argument der query-Methode angegeben.

  • Für... return ist ein Schleifenkonstrukt. In der Abfrage identifiziert die for-Schleife eine Liste von <Location-Elementen> . Für jeden Arbeitsplatzstandort beschreibt die return-Anweisung in der for-Schleife den zu generierenden XML-Code:

    • Ein <Location-Element> mit den Attributen LocationID und LaborHrs. Der entsprechende Ausdruck in den geschweiften Klammern ({ }) ruft die erforderlichen Werte aus dem Dokument ab.

    • Der { $i/@LotSize }-Ausdruck ruft das LotSize-Attribut aus dem Dokument ab, sofern dieses vorhanden ist.

    • Dies ist das Ergebnis:

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

Implementierungseinschränkungen

Die folgenden Einschränkungen sind zu beachten:

  • Die ceiling() -Funktion ordnet alle ganzzahligen Werte xs:decimal zu.

Weitere Informationen

floor-Funktion (XQuery)
Round-Funktion (XQuery)