Fonctions sur les séquences - valeurs distinctesFunctions on Sequences - distinct-values

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

Supprime les doublons de la séquence spécifiée par $arg.Removes duplicate values from the sequence specified by $arg. Si $arg est une séquence vide, la fonction retourne la séquence vide.If $arg is an empty sequence, the function returns the empty sequence.

SyntaxeSyntax


fn:distinct-values($arg as xdt:anyAtomicType*) as xdt:anyAtomicType*  

ArgumentsArguments

$arg$arg
Séquence de valeurs atomiques.Sequence of atomic values.

NotesRemarks

Tous les types de valeurs atomisées transmises à values doivent être des sous-types du même type de base.All types of the atomized values that are passed to distinct-values() have to be subtypes of the same base type. Types de base acceptés sont les types qui prennent en charge la eq opération.Base types that are accepted are the types that support the eq 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 type xs:string.Values of type xdt:untypedAtomic are cast to xs:string. En cas de mélange de ces types ou si des valeurs d'autres types sont transmis, une erreur statique se produit.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 values reçoit le type de base des types transmis, tel que xs : String dans le cas de xdt : untypedAtomic, avec la cardinalité d’origine.The result of distinct-values() receives the base type of the passed in types, such as xs:string in the case of xdt:untypedAtomic, with the original cardinality. Si l'entrée est vide (valeur empty) de façon statique, « empty » est alors implicite et une erreur statique est émise.If the input is statically empty, empty is implied and a static error is raised.

Les valeurs de type xs:string sont comparées au classement de point de codes Unicode par défaut de XQuery.Values of type xs:string are compared to the XQuery default Unicode Codepoint Collation.

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 distinct-values() pour supprimer les valeurs en double d'une séquenceUsing the distinct-values() function to remove duplicate values from the sequence

Dans cet exemple, une instance XML qui contient les numéros de téléphone est affectée à un xml variable de type.In this example, an XML instance that contains telephone numbers is assigned to an xml type variable. La requête XQuery sur cette variable utilise le values fonction pour compiler une liste de numéros de téléphone qui ne contiennent pas de doublons.The XQuery specified against this variable uses the distinct-values() function to compile a list of telephone numbers that do not contain duplicates.

declare @x xml  
set @x = '<PhoneNumbers>  
 <Number>111-111-1111</Number>  
 <Number>111-111-1111</Number>  
 <Number>222-222-2222</Number>  
</PhoneNumbers>'  
-- 1st select  
select @x.query('  
  distinct-values( data(/PhoneNumbers/Number) )  
') as result  

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

111-111-1111 222-222-2222    

Dans la requête suivante, une séquence de nombres (1, 1, 2) est transmise à la values (fonction).In the following query, a sequence of numbers (1, 1, 2) is passed in to the distinct-values() function. La fonction supprime ensuite la valeur en double de la séquence et renvoie les deux autres.The function then removes the duplicate in the sequence and returns the other two.

declare @x xml  
set @x = ''  
select @x.query('  
  distinct-values((1, 1, 2))  
') as result  

La requête renvoie « 1 2 ».The query returns 1 2.

Limites de mise en œuvreImplementation Limitations

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

  • Le values fonction mappe les valeurs entières à xs : decimal.The distinct-values() function maps integer values to xs:decimal.

  • Le values fonction prend en charge les types précédemment mentionnés uniquement et ne prend pas en charge le mélange de types de base.The distinct-values() function only supports the previously mentioned types and does not support the mixture of base types.

  • Le values fonction sur les valeurs xs : Duration n’est pas pris en charge.The distinct-values() function on xs:duration values is 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