Udostępnij za pośrednictwem


Funkcja różnych wartości (XQuery)

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

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

Argumenty

  • $arg
    Sekwencja niepodzielny wartości.

Remarks

Wszystkie rodzaje atomized wartości, które są przekazywane do DISTINCT-VALUES() musi być podtypami tego samego typu podstawowego.Typy podstawowe są akceptowane są typów, które obsługują eq Operacja. Należą do trzech wbudowanych liczbowych typów podstawowych, typów podstawowych data/godziny, xs:ciąg, xs:logiczny i xdt:untypedAtomic.Wartości typu xdt:untypedAtomic są rzutować na xs:ciąg.Wartością domyślną jest ciąg pusty.

Wynik DISTINCT-VALUES() odbiera typu podstawowego przekazanego typów, takich jak xs:ciąg w odniesieniu do xdt:untypedAtomic, z Oryginalna relacja.Dane wejściowe są statycznie puste, domniemanych jest puste i powstaje błąd statyczne.

Wartości typu xs:ciąg są porównywane z domyślnym XQuery sortowanie Codepoint znaków Unicode.

Przykłady

W tym temacie przedstawiono przykłady XQuery przed XML wystąpienia, które są przechowywane w różnych XML typu kolumny bazy danych AdventureWorks.Aby uzyskać ogólne informacje o każdej z tych kolumn zobacz xml Data Type Representation in the AdventureWorks Database.

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

W tym przykładzie instancję XML, która zawiera numery telefonu jest przypisany do XML typu zmiennej.XQuery, określony dla tej zmiennej zastosowań DISTINCT-VALUES() funkcja, aby 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

To jest wynik:

 111-111-1111 222-222-2222  

W następującej kwerendzie sekwencji numerów (1, 1, 2) jest przekazywana do DISTINCT-VALUES() funkcja.Funkcja następnie 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.

defaultButton

Ograniczenia są następujące:

  • The distinct-values() funkcja maps integer values to xs:decimal.

  • The distinct-values() funkcja only supports the previously mentioned types and does not support the mixture of base types.

  • The distinct-values() funkcja on xs:duration values is not supported.

  • Opcja składni, która zawiera sortowanie nie jest obsługiwana.