Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Zwraca z sekwencji wartości niepodzielnych, $arg, jednego elementu, którego wartość jest mniejsza niż wartość wszystkich pozostałych.
Składnia
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Arguments
$arg
Sekwencja elementów, z których ma być zwracana wartość minimalna.
Uwagi
Wszystkie typy wartości atomizowane, które są przekazywane do min() muszą być podtypami tego samego typu podstawowego. Akceptowane typy podstawowe to typy, które obsługują operację gt . Te typy obejmują trzy wbudowane typy bazowe liczbowe, typy bazowe daty/godziny, xs:string, xs:boolean i xdt:untypedAtomic. Wartości typu xdt:untypedAtomic są rzutowane na xs:double. Jeśli istnieje kombinacja tych typów lub jeśli zostaną przekazane inne wartości innych typów, zostanie zgłoszony błąd statyczny.
Wynik min() odbiera typ podstawowy przekazanych typów, takich jak xs:double w przypadku xdt:untypedAtomic. Jeśli dane wejściowe są statycznie puste, jest to dorozumiane, a zwracany jest błąd statyczny.
Funkcja min() zwraca jedną wartość w sekwencji, która jest mniejsza niż jakakolwiek inna w sekwencji danych wejściowych. W przypadku wartości xs:string używany jest domyślny sortowanie punktów kodu Unicode. Jeśli nie można rzutować wartości xdt:untypedAtomic na wartość xs:double, wartość jest ignorowana w sekwencji danych wejściowych, $arg. Jeśli dane wejściowe są dynamicznie obliczaną pustą sekwencją, zwracana jest pusta sekwencja.
Przykłady
Ten temat zawiera przykłady zapytania XQuery dla wystąpień XML przechowywanych w różnych kolumnach typu XML w bazie danych AdventureWorks.
A. Używanie funkcji min() XQuery w celu znalezienia lokalizacji centrum pracy, która ma najmniejszą liczbę godzin pracy
Poniższe zapytanie pobiera wszystkie lokalizacje centrum pracy w procesie produkcyjnym modelu produktu (ProductModelID=7), które mają najmniejszą liczbę godzin pracy. Ogólnie rzecz biorąc, jak pokazano poniżej, zwracana jest pojedyncza lokalizacja. Gdyby wiele lokalizacji miało taką samą liczbę minimalnych godzin pracy, wszystkie zostaną zwrócone.
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
Zwróć uwagę na następujące elementy z poprzedniego zapytania:
- Słowo kluczowe przestrzeni nazw w prologu XQuery definiuje prefiks przestrzeni nazw. Ten prefiks jest następnie używany w treści XQuery.
Treść XQuery konstruuje kod XML zawierający <element Location> z atrybutami WCID i LaborHrs .
- Zapytanie pobiera również wartości ProductModelID i name.
Jest to wynik:
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
Ograniczenia implementacji
Są to ograniczenia:
Funkcja min() mapuje wszystkie liczby całkowite na xs:decimal.
Funkcja min() dla wartości typu xs:duration nie jest obsługiwana.
Sekwencje, które mieszają typy między granicami typu podstawowego, nie są obsługiwane.
Opcja składniowa zapewniająca sortowanie nie jest obsługiwana.