Aracılığıyla paylaş


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.

Ayrıca bkz.

Başvuru

Xml veri türü karşı XQuery işlevleri