Min işlevi (XQuery)
Dan atomik değerleri dizisi döndürür $arg, değeri, diğerleri daha az olan bir madde.
Sözdizimi
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Bağımsız değişkenler
- $arg
Minimum değeri döndürmek hangi öğelerin sırası.
Açıklamalar
İletilen atomized değerleri her türlü MIN() aynı temel türün alt türlerinden olmak zorunda. Kabul edilen temel türleridir destekleyen türleri gt operasyonu. Bu türler, üç yerleşik sayısal türler temel, Tarih ve Saat temel türlerinden, xs: String, xs:boolean ve xdt: untypedAtomic içerir. Değerleri türü xdt: untypedAtomic xs: double için döküm. Bu tür karışımı ise veya diğer türdeki diğer değerleri aktarılırsa, statik bir hata ortaya çıkar.
Sonucu MIN() geçirilen türlerinden, xs: Double xdt: untypedAtomic rezervasyonun gibi temel türü alır. Giriş statik boş ise, boş ima ve statik bir hata döndürülür.
MIN() işlevi, diğer giriş sıra küçüktür sıradaki bir değerini döndürür. XS değerleri, varsayılan Unicode CODEPOINT harmanlama kullanılır. Xs: double için xdt: untypedAtomic değer atanamaz, değer giriş sırası gözardı edilir $arg. Giriş bir dinamik olarak hesaplanan boş sırası ise, boş sırası döndürülür.
Örnekler
Bu konu çeşitli depolanan xml örnekleri karşı XQuery örnekler sağlar xml AdventureWorks veritabanındaki sütunları yazın. Bu sütunlar genel bakış için bkz: DEL - xml Data Type Representation in the AdventureWorks2008R2 Database.
A.En az işçilik saat olan iş merkezi konumu bulmak için MIN() XQuery işlevini kullanma
Ürün modeli üretim süreci içinde tüm iş merkezi konumları aşağıdaki sorgu alır (ProductModelID = 7) en işçilik saat sahip. Genel olarak, aşağıda gösterildiği gibi tek bir yerde döndürülür. Birden fazla yerde asgari işçilik saat sayısı eşit olsaydı, onlar tüm iade.
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
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
Önceki sorgudan aşağıdakilere dikkat edin:
- Ad XQuery giriş anahtar sözcük, ad alanı önekini tanımlar. Bu önek, XQuery gövde sonra kullanılır.
XQuery gövde içeren bir xml yapıları bir <yer> öğe ile Yapılarıwcıd ve LaborHrs öznitelikleri.
- Sorgu ayrıca ProductModelID alır ve ad değerleri.
Sonuç şudur:
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
Uygulama kısıtlamaları
Bu sınırlamalar şunlardır:
MIN() işlevi tüm tamsayılar xs: decimal için eşleştirir.
MIN() türü xs: duration değerleri işlevi desteklenmiyor.
Temel tür sınırlarında türleri karıştırmak sıraları desteklenmez.
Bir harmanlama sağlar sözdizimsel seçeneği desteklenmez.