Fonctions de valeurs numériques : ceiling
S’applique à :SQL Server
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.
Syntaxe
fn:ceiling ( $arg as numeric?) as numeric?
Arguments
$arg
Nombre à laquelle s'applique la fonction.
Remarques
Si le type de $arg est l’un des trois types de base numériques, xs:float, xs:double ou xs:decimal, le type de retour est le même que le type $arg .
Si le type de $arg est un type dérivé de l’un des types numériques, le type de retour est le type numérique de base.
Si l’entrée des fonctions fn:floor, fn:ceiling ou fn:round est xdt:untypedAtomic, elle est implicitement convertie en xs:double.
Tout autre type génère une erreur statique.
Exemples
Cette rubrique fournit des exemples XQuery par rapport aux instances XML stockées dans différentes colonnes de type XML dans la base de données AdventureWorks.
R. 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 la fonction plafond pour retourner les heures de travail sous forme de valeurs de type décimal.
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
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 une colonne de type xml . Par conséquent, la méthode query() (type de données XML) est utilisée pour spécifier XQuery. L'instruction XQuery est spécifiée comme argument de la méthode query.
Pour... return est une construction de boucle. Dans la requête, la boucle for identifie une liste d’éléments <Location> . Pour chaque emplacement du centre de travail, l’instruction de retour dans la boucle for décrit le code XML à générer :
Élément <Location> qui a des attributs LocationID et LaborHrs. L'expression correspondante entre accolades ({ }) récupère les valeurs requises à partir du document.
L'expression { $i/@LotSize } récupère l'attribut LotSize du document, s'il existe.
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 :
- La fonction ceiling() mappe toutes les valeurs entières à xs:decimal.