farklı değerler işlev (XQuery)
Belirtilen sıra değerleri kaldırır Çoğalt $arg. If $arg boş bir sıra işlev boş dizisi verir.
fn:distinct-values($arg as xdt:anyAtomicType*) as xdt:anyAtomicType*
Bağımsız değişkenler
- $arg
Atomik değerleri dizisi.
Remarks
Geçirilen atomized değerlerin türleri DISTINCT-VALUES() alt türlerinden temel aynı türde olması gerekir.Kabul edilen temel destekleyen türleri türleridir eq işlem. Bu türler, üç yerleşik sayısal temel türü, tarih/saat temel türleri, xs:dize, xs:Boole ve xdt:untypedAtomic içerir.Tür xdt:untypedAtomic değerlerini xs:dize için artığını.Bu türlerinin bir karışımını varsa veya diğer türdeki diğer değerleri geçirilirse, statik bir hata ortaya çıkar.
Sonucu DISTINCT-VALUES() xs:dize xdt:untypedAtomic, örneğinde olduğu gibi geçirilen türü temel tür ile özgün önem alır.Giriş statik boşsa boş örtük ve statik bir hata ortaya çıkar.
Tür xs:dize değerlerini XQuery varsayılan Unicode Codepoint harmanlama karşılaştırılır.
Örnekler
Bu konu, çeşitli içinde depolanan XML örnekleri karşı XQuery örnekler sağlar. XML türü sütunlarındaki AdventureWorks veritabanındaki.Konusuna genel bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks veritabanındaki.
C.Sırası yinelenen değerleri kaldırmak için distinct-values() işlevini kullanma
Örneğin, telefon numaralarını içeren bir XML örnek atanmış bir XML türü değişkeni.Bu değişken kullanmaktadır karşı belirtilen XQuery DISTINCT-VALUES() işlev, çoğaltmaları içeren telefon numaralarının listesini derleyin.
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 oluşur:
111-111-1111 222-222-2222
Aşağıdaki sorguda, bir sıra numarası (1, 1, 2) de geçirilir DISTINCT-VALUES() işlev.Işlev yinelenen sırada 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
Sorgu, 1 2 döndürür.
Uygulama kısıtlamaları
Sınırlamaları şunlardır:
The distinct-values() işlev maps integer values to xs:decimal.
The distinct-values() işlev only supports the previously mentioned types and does not support the mixture of base types.
The distinct-values() işlev on xs:duration values is not supported.
Bir harmanlama sağlayan seçeneği sözdizimi desteklenmiyor.