彙總函式 - 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() 函式。
不支援跨基底類型界限混合類型的序列。
不支援提供定序的語法選項。