Aracılığıyla paylaş


değerleri farklı işlev (XQuery)

Yinelenen değerler tarafından belirtilen serisinden kaldırır $arg.If $arg is an empty sequence, the function returns the empty sequence.

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

Tüm türleri için geçen atomized değerleri distinct-values() aynı temel türün alt türlerinden olmak zorunda.Kabul edilen temel türleridir destekleyen türleri eq işlem.Bu türler, yerleşik sayısal temel üç temel tarih/saat türleri, xs:dize, xs:boolean ve xdt:untypedAtomic içerir.Değerleri türü xdt:untypedAtomic xs:dize için artığını.Bu türlerinin bir karışımını ise veya diğer türdeki diğer değerleri aktarılırsa, statik bir hata ortaya çıkar.

Sonucu distinct-values() xs:dize gibi geçirilen türleri temel türünü alır durum , orijinal bir kardinalite düzeyi ile xdt:untypedAtomic.Giriş statik olarak boş ise, boş örtülü ve statik bir hata ortaya çıkar.

XQuery varsayılan Unicode Codepoint harmanlama türü xs:dize değerleri karşılaştırılır.

Örnekler

Bu konuda çeşitli içinde depolanan xml örnekleri karşı XQuery örnekler sağlar xml sütunları yazın AdventureWorks2008R2 veritabanı.Bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks2008R2 veritabanında.

A.Distinct-values() kullanarak işlev serisinden yinelenen değerleri kaldırmak için

Bu örnekte, bir xml örnek telefon numaraları atanır içeren bir xml türü değişkeni.Belirtilen Bu değişken kullanır karşı XQuery distinct-values() çoğaltmalar içeren telefon numaralarının bir listesini derlemek için işlev.

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

Bu sonucu verir:

111-111-1111 222-222-2222

Aşağıdaki sorgu bir dizi sayı (1, 1, 2) için geçirilen distinct-values() işlev.işlev yinelenen sırayla kaldırır ve diğer iki verir.

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

Sorgu 1 ve 2 döndürür.

Uygulama kısıtlamaları

Sınırlamalar şunlardır:

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

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

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

  • Bir harmanlama sağlar seçeneği sözdizimi desteklenmiyor.