Aracılığıyla paylaş


Kümülatif İşlevler - min

Şunlar için geçerlidir: SQL Server

Değeri diğerlerinden daha küçük olan bir öğe olan atomik değerler dizisinden $arg döndürür.

Sözdizimi

  
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?  

Arguments

$arg
En düşük değerin döndürüleceği öğe dizisi.

Açıklamalar

min() öğesine geçirilen atomize değerlerin tüm türleri aynı temel türdeki alt türler olmalıdır. Kabul edilen temel türler , gt işlemini destekleyen türlerdir. Bu türlerde üç yerleşik sayısal taban türü, tarih/saat temel türleri, xs:string, xs:boolean ve xdt:untypedAtomic bulunur. xdt:untypedAtomic türü değerleri xs:double olarak yayınlanmıştır. Bu türlerin bir karışımı varsa veya diğer türlerin diğer değerleri geçirilirse, statik bir hata oluşur.

min() sonucu, xdt:untypedAtomic durumunda xs:double gibi geçirilen türlerin temel türünü alır. Giriş statik olarak boşsa, boş anlamına gelir ve statik bir hata döndürülür.

min() işlevi, dizideki giriş dizisindeki herhangi bir değerden daha küçük olan bir değeri döndürür. xs:string değerleri için varsayılan Unicode Codepoint Harmanlaması kullanılır. Bir xdt:untypedAtomic değeri xs:double'a bırakılamazsa, değer giriş dizisinde yoksayılır $arg. Giriş dinamik olarak hesaplanan boş bir diziyse, boş dizi döndürülür.

Örnekler

Bu konu, AdventureWorks veritabanındaki çeşitli xml türü sütunlarında depolanan XML örneklerine karşı XQuery örnekleri sağlar.

A. En az çalışma saati olan iş merkezi konumunu bulmak için min() XQuery işlevini kullanma

Aşağıdaki sorgu, ürün modelinin üretim sürecindeki (ProductModelID=7) en az çalışma saati olan tüm iş merkezi konumlarını alır. Genel olarak, aşağıdakilerde gösterildiği gibi tek bir konum döndürülür. Birden çok konumda eşit sayıda minimum çalışma saati varsa, bunların tümü iade edilir.

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:

  • XQuery günlüğündeki namespace anahtar sözcüğü bir ad alanı ön eki tanımlar. Bu ön ek daha sonra XQuery gövdesinde kullanılır.

XQuery gövdesi, WCID ve LaborHrs özniteliklerine sahip bir <Location> öğesine sahip XML'yi oluşturur.

  • Sorgu ayrıca ProductModelID ve ad değerlerini de alır.

Sonuç şu şekildedir:

ProductModelID   Name              Result  
---------------  ----------------  ---------------------------------  
7                HL Touring Frame  <Location WCID="45" LaborHrs="0.5"/>   

Uygulama Sınırlamaları

Sınırlamalar şunlardır:

  • min() işlevi tüm tamsayıları xs:decimal ile eşler.

  • xs:duration türündeki değerlerdeki min() işlevi desteklenmez.

  • Türleri temel tür sınırları arasında karıştıran diziler desteklenmez.

  • Harmanlama sağlayan söz dizimsel seçenek desteklenmez.

Ayrıca Bkz.

Xml Veri Türüne Karşı XQuery İşlevleri