Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Odstraní duplicitní hodnoty ze sekvence specifikované $arg. Pokud je $arg prázdná posloupnost, funkce vrátí prázdnou posloupnost.
Syntax
fn:distinct-values($arg as xdt:anyAtomicType*) as xdt:anyAtomicType*
Arguments
$arg
Sekvence atomových hodnot.
Remarks
Všechny typy atomizovaných hodnot, které jsou předávány na různé hodnoty (), musí být podtypy stejného základního typu. Základní typy, které jsou přijímány, jsou ty, které podporují operaci EQ . Mezi tyto typy patří tři předdefinované číselné základní typy, základní typy data a času, xs:string, xs:boolean a xdt:untypedAtomic. Hodnoty typu xdt:untypedAtomic se přenášejí na xs:string. Pokud existuje kombinace těchto typů nebo pokud jsou předány jiné hodnoty jiných typů, vyvolá se statická chyba.
Výsledek distinct-values() přijímá základní typ předaných typů, například xs:string v případě xdt:untypedAtomic, s původní kardinálností. Pokud je vstup staticky prázdný, je implicitně prázdný a vyvolá se statická chyba.
Hodnoty typu xs:string jsou porovnávány s výchozím Unicode Codepoint Collation v XQuery.
Examples
Toto téma obsahuje příklady XQuery pro instance XML, které jsou uloženy v různých sloupcích typu XML v databázi AdventureWorks.
A. Použití funkce distinct-values() k odstranění duplicitních hodnot ze sekvence
V tomto příkladu je XML instance obsahující telefonní čísla přiřazena k xml typové proměnné. XQuery určený proti této proměnné používá funkci distinct-values() k sestavení seznamu telefonních čísel, která neobsahují duplicity.
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
Toto je výsledek:
111-111-1111 222-222-2222
V následujícím dotazu je posloupnost čísel (1, 1, 2) předána do funkce distinct-values(). Funkce pak odstraní duplikát v posloupnosti a vrátí další dva.
declare @x xml
set @x = ''
select @x.query('
distinct-values((1, 1, 2))
') as result
Dotaz vrací 1 2.
Omezení implementace
Toto jsou omezení:
Funkce distinct-values() mapuje celočíselné hodnoty na xs:desítkové.
Funkce distinct-values() podporuje pouze výše zmíněné typy a nepodporuje směs základních typů.
Funkce distinct-values() na hodnotách xs:duration není podporována.
Syntaktická možnost, která poskytuje kolaci, není podporována.
Související obsah
- funkce XQuery proti datového typu XML