Aracılığıyla paylaş


ayrı değerleri işlev (XQuery)

Yinelenen değerleri belirtilen serisinden siler $arg. Eğer $argboş bir sıra ise işlev boş sırası döndürür.

Sözdizimi

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

Bağımsız değişkenler

  • $arg
    Atomik değerleri dizisi.

Açıklamalar

İletilen atomized değerleri her türlü distinct-values() aynı temel türün alt türlerinden olmak zorunda. Kabul edilen temel türleridir destekleyen türleri eqOperasyon. Bu türler, üç yerleşik sayısal türler temel, Tarih ve Saat temel türlerinden, xs: String, xs:boolean ve xdt: untypedAtomic içerir. Türü xdt: untypedAtomic değerler için XS döküm. Bu tür karışımı ise veya diğer türdeki diğer değerleri aktarılırsa, statik bir hata ortaya çıkar.

Sonucu distinct-values() orijinal önem ile geçirilen türlerinden, xs: String of xdt: untypedAtomic, gibi temel türü alır. Giriş statik boş ise, boş ima ve statik bir hata ortaya çıkar.

Değerleri türü xs: String, XQuery varsayılan Unicode CODEPOINT harmanlama karşılaştırılır.

Örnekler

Bu konu çeşitli depolanan xml örnekleri karşı XQuery örnekler sağlar xml AdventureWorks veritabanındaki sütunları yazın. Bu sütunlar genel bakış için bkz: DEL - xml Data Type Representation in the AdventureWorks2008R2 Database.

A.Yinelenen değerler serisinden kaldırmak için distinct-values() işlevi kullanma

Örneğin, telefon numaralarını içeren xml örneğine atanmış bir xml türü değişkeni. Bu değişken kullanır karşı belirtilen XQuery distinct-values() yineleme içermeyen telefon numaralarının bir listesini derlemek için işlevi.

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

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

Sonuç şudur:

 111-111-1111 222-222-2222  
 111-111-1111 222-222-2222  

Aşağıdaki sorgu, sayılar (1, 1, 2) dizisi içinde geçer distinct-values() işlevi. İşlev sonra sırayla yinelenen kaldırır ve diğer iki döndürür.

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

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

Sorgu 1 2 döndürür.

Uygulama kısıtlamaları

Bu sınırlamalar şunlardır:

  • Distinct-values() işlevi, tamsayı değerler için xs: decimal eşleştirir.

  • Distinct-values() işlevi yalnızca yukarıda belirtilen türlerini destekler ve temel türlerinin karışımına desteklemiyor.

  • Distinct-values() xs: duration değerleri işlevi desteklenmiyor.

  • Bir harmanlama sağlar sözdizimsel seçeneği desteklenmez.

Ayrıca bkz.

Başvuru

Xml veri türü karşı XQuery işlevleri