Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
$arg tarafından belirtilen diziden tekrarlanan değerleri kaldırır. Eğer $arg boş bir dizi, fonksiyon boş diziyi döndürür.
Syntax
fn:distinct-values($arg as xdt:anyAtomicType*) as xdt:anyAtomicType*
Arguments
$arg
Atomik değerler dizisi.
Remarks
Farklı-değerler()'ye aktarılan atomize değerlerin tüm türleri aynı baz tipinin alt tipleri olmalıdır. Kabul edilen temel tipler, eq işlemini destekleyen türlerdir. Bu türlerde üç yerleşik sayısal taban türü, tarih/saat temel türleri, xs:string, xs:boolean ve xdt:untypedAtomic bulunur. xdt:untypedAtomic tipindeki değerler xs:string'e aktarılır. Bu türlerin bir karışımı varsa veya diğer türlerin diğer değerleri geçirilirse, statik bir hata oluşur.
distinct-values() sonucu, orijinal kardinalite ile geçilen tiplerin temel tipini, örneğin xdt:untypedAtomic durumunda xs:string alır. Eğer girdi statik olarak boşsa, boş ima edilir ve statik bir hata ortaya çıkar.
xs:string tipindeki değerler, XQuery varsayılan Unicode Codepoint Collation ile karşılaştırılır.
Examples
Bu konu, AdventureWorks veritabanındaki çeşitli xml türü sütunlarında depolanan XML örneklerine karşı XQuery örnekleri sağlar.
A. Dizideki tekrarlanan değerleri çıkarmak için distinct-values() fonksiyonunun kullanılması
Bu örnekte, telefon numaraları içeren bir XML örneği bir xml tipi değişkene atanır. Bu değişkene karşı belirtilen XQuery, farklı değerler() fonksiyonunu kullanarak çoğaltma içeren telefon numaralarının bir listesini derler.
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ç şu şekildedir:
111-111-1111 222-222-2222
Aşağıdaki sorguda, bir sayı dizisi (1, 1, 2) farklı-değerler() fonksiyonuna iletilir. Fonksiyon daha sonra dizideki kopyayı kaldırır ve diğer ikisini geri getirir.
declare @x xml
set @x = ''
select @x.query('
distinct-values((1, 1, 2))
') as result
Sorgu 1 2 döndürüyor.
Uygulama Sınırlamaları
Sınırlamalar şunlardır:
Distinct-values() fonksiyonu, tam sayı değerlerini xs:ondalık olarak eşler.
Distinct-values() fonksiyonu yalnızca daha önce bahsedilen tipleri destekler ve temel tiplerin karışımını desteklemez.
xs:duration değerlerindeki distinct-values() fonksiyonu desteklenmez.
Harmanlama sağlayan söz dizimsel seçenek desteklenmez.