-Les fonctions d’agrégation minAggregate Functions - min

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2012)nonAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Renvoie, à partir d’une séquence de valeurs atomiques, $arg, le seul élément dont la valeur est inférieure à celle de toutes les autres.Returns from a sequence of atomic values, $arg, the one item whose value is less than that of all the others.

SyntaxeSyntax


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

ArgumentsArguments

$arg$arg
Séquence d'éléments à partir de laquelle la valeur minimale est renvoyée.Sequence of items from which to return the minimum value.

NotesRemarks

Tous les types de valeurs atomisées transmises à min() doivent être des sous-types du même type de base.All types of the atomized values that are passed to min() have to be subtypes of the same base type. Types de base acceptés sont les types qui prennent en charge la gt opération.Base types that are accepted are the types that support the gt operation. Ces types incluent les trois types numériques de base intégrés, les types de base date/heure et les types xs:string (chaîne), xs:boolean (booléen) et xdt:untypedAtomic (atomique non typé).These types include the three built-in numeric base types, the date/time base types, xs:string, xs:boolean, and xdt:untypedAtomic. Les valeurs de type xdt:untypedAtomic sont converties en xs:double.Values of type xdt:untypedAtomic are cast to xs:double. S’il existe un mélange de ces types, ou si d’autres valeurs d’autres types sont passés, une erreur statique est déclenchée.If there is a mixture of these types, or if other values of other types are passed, a static error is raised.

Le résultat de min() reçoit le type de base des types transmis, tel que xs : double dans le cas de xdt : untypedAtomic.The result of min() receives the base type of the passed in types, such as xs:double in the case of xdt:untypedAtomic. Si l'entrée est statiquement vide, vide est implicite et une erreur statique est générée.If the input is statically empty, empty is implied and a static error is returned.

Le min() fonction retourne la valeur de la séquence qui est plus petite que n’importe quel autre dans la séquence d’entrée.The min() function returns the one value in the sequence that is smaller than any other in the input sequence. Pour les valeurs xs:string, le classement par défaut des points de code Unicode est utilisé.For xs:string values, the default Unicode Codepoint Collation is being used. Si une valeur xdt : untypedAtomic ne peut pas être convertie en xs : double, la valeur est ignorée dans la séquence d’entrée, $arg.If an xdt:untypedAtomic value cannot be cast to xs:double, the value is ignored in the input sequence, $arg. Si l'entrée est une séquence vide calculée de manière dynamique, la séquence vide est renvoyée.If the input is a dynamically calculated empty sequence, the empty sequence is returned.

ExemplesExamples

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.This topic provides XQuery examples against XML instances that are stored in various xml type columns in the AdventureWorks database.

A.A. Utilisation de la fonction XQuery min() pour rechercher le poste de travail enregistrant le moins d'heures de main-d'œuvreUsing the min() XQuery function to find the work center location that has the fewest labor hours

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.The following query retrieves all work center locations in the manufacturing process of the product model (ProductModelID=7) that have the fewest labor hours. Généralement, comme le montre l'exemple suivant, un seul poste est renvoyé.Generally, as shown in the following, a single location is returned. Si plusieurs postes de travail enregistraient le même nombre minimal de main-d'œuvre, ils seraient tous renvoyés.If multiple locations had an equal number of minimum labor hours, they would all be returned.

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 dans la requête précédente :Note the following from the previous query:

  • Le espace de noms mot clé dans le prologue XQuery définit un préfixe d’espace de noms.The namespace keyword in the XQuery prolog defines a namespace prefix. Ce préfixe est utilisé ultérieurement dans le corps de la requête.This prefix is then used in the XQuery body.

    Le corps XQuery construit le code XML qui a un <emplacement > élément avec WCID et LaborHrs attributs.The XQuery body constructs the XML that has a <Location> element with WCID and LaborHrs attributes.

  • La requête récupère également l'identificateur et le nom du modèle de produit.The query also retrieves the ProductModelID and name values.

    Voici le résultat obtenu :This is the result:

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

Limites de mise en œuvreImplementation Limitations

Les limitations suivantes s'appliquent :These are the limitations:

  • Le min() fonction mappe tous les entiers à xs : decimal.The min() function maps all integers to xs:decimal.

  • Le min() fonction sur des valeurs de type xs : Duration n’est pas pris en charge.The min() function on values of type xs:duration is not supported.

  • Les séquences faisant intervenir plusieurs types dérivés de différents types de base ne sont pas prises en charge.Sequences that mix types across base type boundaries are not supported.

  • L'option syntaxique fournissant un classement n'est pas prise en charge.The syntactic option that provides a collation is not supported.

Voir aussiSee Also

Fonctions XQuery impliquant le type de données xmlXQuery Functions against the xml Data Type