Share via


彙總函式 - min

適用於:SQL Server

從不可部分完成值序列傳回, $arg ,其值小於所有其他專案的專案。

語法

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

引數

$arg
要從中傳回最小值的專案序列。

備註

傳遞至 min() 的所有原子化數值型別都必須是相同基底類型的子類型。 接受的基底類型是支援 gt 作業的類型 。 這些類型包括三個內建數值基底類型、日期/時間基底類型、xs:string、xs:boolean 和 xdt:untypedAtomic。 xdt:untypedAtomic 類型的值會轉換成 xs:double。 如果混合這些類型,或傳遞其他類型的其他值,則會引發靜態錯誤。

min() 的結果 會接收傳入型別的基底類型,例如 xdt:untypedAtomic 的案例中的 xs:double。 如果輸入是靜態空白的,則會隱含空白,並傳回靜態錯誤。

min() 式會傳回序列中小於輸入序列中任何其他值的值。 針對 xs:string 值,會使用預設的 Unicode Codepoint 定序。 如果 xdt:untypedAtomic 值無法轉換成 xs:double,則會忽略輸入序列中的值, $arg 。 如果輸入是動態計算的空序列,則會傳回空序列。

範例

本主題針對 AdventureWorks 資料庫中各種 xml 類型資料行中儲存的 XML 實例,提供 XQuery 範例。

A. 使用 min() XQuery 函式來尋找工作時間最少的工作中心位置

下列查詢會擷取產品型號 (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  

請注意下列項目是從上一個查詢而來:

  • XQuery 初構中的 namespace 關鍵字會定義命名空間前置詞。 接著會在 XQuery 主體中使用這個前置詞。

XQuery 主體會建構具有 < 具有 WCID 和 LaborHrs 屬性之 Location > 元素的 XML。

  • 查詢也會擷取 ProductModelID 和名稱值。

以下是結果:

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

實作限制

以下是限制:

  • min() 式會將所有整數對應至 xs:decimal。

  • 不支援 xs:duration 類型的 min() 函式。

  • 不支援跨基底類型界限混合類型的序列。

  • 不支援提供定序的語法選項。

另請參閱

針對 xml 資料類型的 XQuery 函式