Udostępnij przez


Wartooci DISTINCT funkcji (XQuery)

Usuwa zduplikowane wartości z sekwencji numerów określonej przez $arg.Jeśli $arg jest pusta, funkcja zwraca pusty sekwencji.

Składnia

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

Argumenty

  • $arg
    Sekwencja wartości niepodzielny.

Uwagi

Wszystkie rodzaje atomized wartości, które są przekazywane do distinct-values() musi być podtypów tego samego typu podstawowego.Typów podstawowych, które są akceptowane są typy, które obsługują eq operacji.Typy te obejmują trzy wbudowane podstawowe typy liczbowe, data /czas podstawowe typy, xs:ciąg, xs:boolean i xdt:untypedAtomic.Wartości typu xdt:untypedAtomic są rzutowane na xs:ciąg.Jeśli mieszanki te typy lub inne wartości inne typy są przekazywane jest wywoływane statyczne błąd.

Wynik distinct-values() odbiera typu podstawowego przekazanego typów, takich jak xs:ciąg w przypadek z xdt:untypedAtomic z oryginalnego kardynalność.Jeśli dane wejściowe są statycznie puste, domniemanych puste i spowodował błąd statyczne.

Domyślnie XQuery Unicode rozróżniające punktów kodowych znaków dwuskładnikowych są porównywane wartości typu xs:ciąg.

Przykłady

W tym temacie przedstawiono przykłady XQuery przeciwko wystąpień XML, które są przechowywane w różnych xml wpisz kolumn w AdventureWorks2008R2 bazy danych.Przegląd tych kolumn, zobacz XML reprezentacji typu danych w bazie danych AdventureWorks2008R2.

A.Aby usunąć zduplikowane wartości z sekwencji przy użyciu funkcja distinct-values()

W tym przykładzie XML wystąpienie zawiera numery przypisane do telefonu xml typu zmiennej.XQuery określone przeciwko tej zmiennej używa distinct-values() funkcja skompilować listę numerów telefonów, które nie zawierają duplikatów.

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

Jest to wynikiem:

111-111-1111 222-222-2222

W następującej kwerendzie sekwencji numerów (1, 1, 2) jest przekazywana do distinct-values() funkcja.Następnie funkcja usuwa duplikat w sekwencji i zwraca pozostałe dwa.

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

Kwerenda zwraca 1, 2.

Ograniczenia wdrażania

Są następujące ograniczenia:

  • Distinct-values() funkcja mapuje wartości całkowitych xs:decimal.

  • Distinct-values() tylko funkcja obsługuje wspomnianych typów i nie obsługuje mieszanych typów podstawowych.

  • Distinct-values() nie jest obsługiwana funkcja wartości xs: Duration.

  • Syntaktyczne opcja, która zapewnia sortowanie nie jest obsługiwana.

Zobacz także

Odwołanie