min, funkcja (XQuery)
Zwraca wartość z sekwencji niepodzielny wartości $arg, jeden element, którego wartość jest mniejsza niż w przypadku wszystkich innych.
Składnia
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Argumenty
- $arg
Sekwencja elementów, z której zostanie zwrócona wartość minimalna.
Uwagi
Wszystkie rodzaje atomized wartości, które są przekazywane do **min()**musi być podtypów tego samego typu podstawowego.Typów podstawowych, które są akceptowane są typy, które obsługują gt operacji.Typy te obejmują trzy wbudowane podstawowe typy liczbowe, data /czas podstawowe typy, xs:ciąg, xs:boolean i xdt:untypedAtomic.Wartości typu xdt:untypedAtomic są rzutowane na xs:double.Jeśli mieszanki te typy lub inne wartości inne typy są przekazywane jest wywoływane statyczne błąd.
Wynik min() odbiera typu podstawowego przekazanego typów, takich jak xs:double w przypadek z xdt:untypedAtomic.Jeśli dane wejściowe są statycznie puste, domniemanych puste i zwracany jest błąd statyczne.
Min() funkcja zwraca jedną wartość sekwencji jest mniejszy niż inne w sekwencji wejściowych.Dla wartości xs:ciąg jest używana domyślna Unicode rozróżniające punktów kodowych znaków dwuskładnikowych.Jeśli wartość xdt:untypedAtomic nie można rzutować na xs:double, wartość jest ignorowana w sekwencji wejściowych $arg.Dane wejściowe są dynamicznie obliczeniowe sekwencji puste, zwracany jest pusty sekwencji.
Przykłady
W tym temacie przedstawiono przykłady XQuery przeciwko wystąpień XML, które są przechowywane w różnych xml wpisz kolumn w AdventureWorks2008R2 bazy danych.Przegląd tych kolumn, zobacz XML reprezentacji typu danych w bazie danych AdventureWorks2008R2.
A.Aby znaleźć lokalizację centrum pracy, która ma najmniejszą liczbą godzin pracy przy użyciu min() XQuery, funkcja
Następująca kwerenda pobiera wszystkie lokalizacje Centrum pracy w procesie produkcji modelu produktu (ProductModelID = 7) zawierające najmniejszą liczbę godzin robociznę.Ogólnie, jak pokazano poniżej, pojedynczej lokalizacji jest zwracany.Jeśli wiele lokalizacji równą liczbę godzin minimalne robociznę, one wszystkie zostałaby zwrócona.
select ProductModelID, Name, Instructions.query('
declare namespace AWMI=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $Location in /AWMI:root/AWMI:Location
where $Location/@LaborHours =
min( /AWMI:root/AWMI:Location/@LaborHours )
return
<Location WCID= "{ $Location/@LocationID }"
LaborHrs= "{ $Location/@LaborHours }" />
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7;
Poniższe z poprzedniej kwerendy:
- Nazw słowo kluczowe w prologu XQuery definiuje prefiks obszaru nazw.Ten prefiks jest następnie używana jako treść XQuery.
Treść XQuery konstrukcji XML, który ma <lokalizację> element z WCID i LaborHrs atrybuty.
- Kwerenda pobiera także ProductModelID i nazwa wartości.
Jest to wynikiem:
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
Ograniczenia wdrażania
Są następujące ograniczenia:
Min() funkcja odwzorowuje wszystkie liczby całkowite xs:decimal.
Min() nie jest obsługiwana funkcja na wartości typu xs: Duration.
Sekwencje wymieszać typów granicami typu podstawowego nie są obsługiwane.
Syntaktyczne opcja, która zapewnia sortowanie nie jest obsługiwana.