Megosztás:


Összesítő függvények – perc

A következőkre vonatkozik:SQL Server

Az atomértékek sorozatából $argaz az elem, amelynek értéke kisebb, mint az összes többi elemé.

Szintaxis

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

Érvek

$arg
Olyan elemek sorozata, amelyekből a minimális értéket kell visszaadni.

Megjegyzések

A min() átadott atomizált értékek minden típusának azonos alaptípusú altípusnak kell lennie. Az elfogadott alaptípusok azok a típusok, amelyek támogatják a gt műveletet. Ezek a típusok közé tartozik a három beépített numerikus alaptípus, a dátum/idő alaptípus, az xs:sztring, az xs:boolean és az xdt:untypedAtomic. Az xdt:untypedAtomic típusú értékek xs:double értékre lesznek állítva. Ha ezek a típusok elegye van, vagy ha más típusú értékeket adnak át, statikus hiba keletkezik.

A min() eredménye megkapja az átadott típus alaptípusát, például xs:double xdt:untypedAtomic esetén. Ha a bemenet statikusan üres, akkor a rendszer az üres értéket feltételezi, és statikus hibát ad vissza.

A min() függvény a bemeneti sorozat bármely más értékénél kisebb értéket adja vissza a sorozatban. Xs:sztringértékek esetén a rendszer az alapértelmezett Unicode Codepoint-rendezést használja. Ha xdt:untypedAtomic értéket nem lehet xs:double értékre leadni, akkor az érték figyelmen kívül lesz hagyva a bemeneti sorrendben, $arg. Ha a bemenet egy dinamikusan számított üres sorozat, a rendszer visszaadja az üres sorozatot.

Példák

Ez a témakör XQuery-példákat tartalmaz az AdventureWorks-adatbázis különböző xml- típusú oszlopaiban tárolt XML-példányokra.

Egy. A min() XQuery függvény használatával keresse meg a legkevesebb munkaórát tartalmazó munkaterületet

Az alábbi lekérdezés lekéri a termékmodell (ProductModelID=7) gyártási folyamatának összes olyan műhelyhelyét, amely a legkevesebb munkaórával rendelkezik. Az alábbiakban látható módon általában egyetlen hely lesz visszaadva. Ha több helyen egyenlő számú munkaóra van, akkor mind vissza lesznek adva.

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  

Jegyezze fel az előző lekérdezésben szereplő következőket:

  • Az XQuery prolog névtér kulcsszó egy névtérelőtagot határoz meg. Ezt az előtagot ezután az XQuery-törzs használja.

Az XQuery-törzs a WCID és < attribútumokkal rendelkező >Hely elemet tartalmazó XML-t hozza létre.

  • A lekérdezés a ProductModelID és a névértékeket is lekéri.

Ez az eredmény:

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

Megvalósítási korlátozások

Ezek a korlátozások:

  • A min() függvény az összes egész számot xs:decimális értékre képezi le.

  • Az xs:duration típusú értékek min() függvénye nem támogatott.

  • Azok a sorozatok, amelyek típusokat kevernek az alaptípus-határok között, nem támogatottak.

  • A rendezést biztosító szintaktikai beállítás nem támogatott.

Lásd még:

XQuery-függvények xml adattípusú