Fonction max (XQuery)

Renvoie, à partir d'une séquence de valeurs atomiques, $arg, le seul élément dont la valeur est supérieure à celle de tous les autres.

Syntaxe

fn:max($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?

Arguments

  • $arg
    Séquence de valeurs atomiques à partir de laquelle la valeur maximale est renvoyée.

Notes

Tous les types des valeurs atomisées transmises à max() doivent être des sous-types du même type de base. Les types de base acceptés sont les types qui prennent en charge l'opération gt. Il s'agit donc des trois types numériques de base intégrés, des types de base date/heure, et des types xs:string, xs:boolean et xdt:untypedAtomic. Les valeurs de type xdt:untypedAtomic sont converties en xs:double. Si ces types sont mélangés, ou si d'autres valeurs de types différents sont transmises, une erreur statique est générée.

Le résultat de la fonction max() reçoit le type de base des types transmis, tel que xs:double en cas de xdt:untypedAtomic. Si l'entrée est statiquement vide, vide est implicite et une erreur statique est générée.

La fonction max() retourne la seule valeur de la séquence supérieure à toute autre valeur de la séquence en entrée. Pour les valeurs xs:string, le classement par défaut des points de code Unicode est utilisé. S'il est impossible de convertir une valeur xdt:untypedAtomic en xs:double, la valeur est ignorée dans la séquence en entrée $arg. Si l'entrée est une séquence vide calculée de manière dynamique, la séquence vide est renvoyée.

Exemples

Cette rubrique fournit des exemples de requêtes XQuery exécutées sur des instances XML stockées dans diverses colonnes de type xml de la base de données AdventureWorks. Pour obtenir une vue d'ensemble de chacune de ces colonnes, consultez Représentation du type de données xml dans la base de données AdventureWorks.

A. Utilisation de la fonction XQuery max() pour localiser les postes de travail du processus de fabrication enregistrant le plus d'heures de main-d'œuvre

La requête fournie dans la fonction min (XQuery) peut être réécrite de façon à utiliser la fonction max().

Limites de la mise en œuvre

Voici les limites :

  • La fonction max() associe toutes les valeurs entières à xs:decimal.

  • La fonction max() portant sur des valeurs de type xs:duration n'est pas prise en charge.

  • Les séquences faisant intervenir plusieurs types dérivés de différents types de base ne sont pas prises en charge.

  • L'option syntaxique qui fournit un classement n'est pas prise en charge.