Fonctions de valeurs numériques - ceiling

 

S’applique à : SQL Server

THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Renvoie le nombre le plus petit sans portion décimale qui n'est pas inférieur à la valeur de cet argument. Si l'argument est une séquence vide, la fonction renvoie la séquence vide.

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

$arg
Nombre à laquelle s'applique la fonction.

Si le type de $arg est un des trois types numériques de base, xs, xs : double, ou xs : decimal, le type de retour est la même que la $arg type.

Si le type de $arg est un type qui est dérivé d’un des types numériques, le type de retour est le type de base numérique.

Si l’entrée pour les fonctions de valeur, fn : Ceiling ou fn : Round est xdt : untypedAtomic, elle est implicitement convertie en xs : double.

Tout autre type génère une erreur statique.

Cette rubrique fournit des exemples de XQuery relatifs à des instances XML stockés dans différentes xml colonnes de type dans la base de données AdventureWorks.

A. Utilisation de la fonction ceiling() de XQuery

Pour le modèle de produit 7, cette requête renvoie une liste des postes de travail que compte le processus de fabrication du modèle de produit. Pour chaque poste de travail, la requête renvoie l'ID, les heures de main-d'œuvre et la taille des lots, le cas échéant. La requête utilise le plafond fonction pour retourner les heures de main-d'œuvre sous forme de valeurs de type décimal.

SELECT ProductModelID, Instructions.query('  
declare namespace AWMI="http://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  

Notez les points suivants dans la requête précédente :

  • Le préfixe d'espace de noms AWMI signifie Adventure Works Manufacturing Instructions (instructions de fabrication d'Adventure Works). Ce préfixe fait référence à l'espace de noms utilisé dans le document interrogé.

  • Instructions est un xml colonne de type. Par conséquent, le méthode query() (type de données XML) sert à spécifier XQuery. L'instruction XQuery est spécifiée comme argument de la méthode query.

  • pour... retourner est une construction en boucle. Dans la requête, le de boucle identifie une liste de <> > éléments. Pour chaque poste de travail, les retourner instruction dans le pour boucle décrit le code XML à générer :

    • A <> > élément possédant les attributs LocationID et LaborHrs. L'expression correspondante entre accolades ({ }) récupère les valeurs requises à partir du document.

    • Le {$i/@LotSize } expression récupère l’attribut LotSize du document, le cas échéant.

    • Voici le résultat obtenu :

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

Limites de mise en œuvre

Les limitations suivantes s'appliquent :

  • Le ceiling() fonction mappe toutes les valeurs entières à xs : decimal.

Fonction FLOOR (XQuery)
Fonction Round (XQuery)

Ajouts de la communauté

AJOUTER
Afficher: