Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Fonction min (XQuery)

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

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

$arg

Séquence d'éléments à partir de laquelle la valeur minimale est renvoyée.

Tous les types des valeurs atomisées transmises à min() 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 min() prend 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 min() renvoie la seule valeur de la séquence qui est infé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.

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

A.Utilisation de la fonction XQuery min() pour rechercher le poste de travail enregistrant le moins d'heures de main-d'œuvre

La requête suivante récupère tous les postes de travail du processus de fabrication du modèle de produit (ProductModelID=7) qui enregistre le moins d'heures de main-d'œuvre. Généralement, comme le montre l'exemple suivant, un seul poste est renvoyé. Si plusieurs postes de travail enregistraient le même nombre minimal de main-d'œuvre, ils seraient tous renvoyés.

select ProductModelID, Name, Instructions.query('
  declare namespace AWMI=
    "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
  for   $Location in /AWMI:root/AWMI:Location
  where $Location/@LaborHours =
          min( /AWMI:root/AWMI:Location/@LaborHours )
return
  <Location WCID=     "{ $Location/@LocationID }" 
              LaborHrs= "{ $Location/@LaborHours }" />
  ') as Result 
FROM  Production.ProductModel
WHERE ProductModelID=7

Notez les points suivants par rapport à la requête ci-dessus :

  • Le mot clé namespace du prologue XQuery définit un préfixe d'espace de noms. Ce préfixe est utilisé ultérieurement dans le corps de la requête.

Le corps de la requête XQuery construit le code XML où figure un élément <Location> doté des attributs WCID et LaborHrs.

  • La requête récupère également l'identificateur et le nom du modèle de produit.

Voici le résultat obtenu :

ProductModelID   Name              Result
---------------  ----------------  ---------------------------------
7                HL Touring Frame  <Location WCID="45" LaborHrs="0.5"/> 

Les limites sont les suivantes :

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

  • La fonction min() 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.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft