ceiling 函數 (XQuery)
傳回不含小數的最小數字,不小於其引數的值。 如果引數是空的序列,它會傳回空的序列。
語法
fn:ceiling ( $arg as numeric?) as numeric?
引數
- $arg
會套用函數的數字。
備註
如果 $arg 類型是 xs:float、xs:double 或 xs:decimal 這三個數值基底類型之一,則傳回類型與 $arg 類型相同。
如果 $arg 的類型是從數值類型之一衍生而來,則傳回類型是基底數值類型。
如果 fn:floor、fn:ceiling 或 fn:round 函數的輸入是 xdt:untypedAtomic,則它會隱含地轉換為 xs:double。
任何其他類型都會產生靜態錯誤。
範例
本主題針對 XML 執行個體提供 XQuery 範例,這些執行個體是儲存在 AdventureWorks 資料庫的各種 xml 類型資料行中。
A.使用 ceiling() XQuery 函數
對於「產品型號 7」,此查詢傳回產品型號之製造過程中的工作中心位置的清單。 如有記載,則此查詢會針對每一個工作中心位置,傳回位置識別碼、工時和批量。 此查詢使用 ceiling 函數傳回工時,做為 decimal 類型的值。
SELECT ProductModelID, Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $i in /AWMI:root/AWMI:Location
return
<Location LocationID="{ $i/@LocationID }"
LaborHrs="{ ceiling($i/@LaborHours) }" >
{
$i/@LotSize
}
</Location>
') AS Result
FROM Production.ProductModel
WHERE ProductModelID=7
請注意下列項目是從上一個查詢而來:
AWMI 命名空間前置詞代表 Adventure Works Manufacturing Instructions。 此前置詞是指要查詢之文件中使用的相同命名空間。
Instructions 是 xml 類型資料行。 因此,query() 方法 (XML 資料類型) 是用來指定 XQuery。 XQuery 陳述式指定為查詢方法的引數。
for ... return 是迴圈建構。 在此查詢中,for 迴圈識別 <Location> 元素的清單。 對於每一個工作中心位置,for 迴圈中的 return 陳述式描述要產生的 XML:
含有 LocationID 和 LaborHrs 屬性的 <Location> 元素。 大括號 ({ }) 內的相對應運算式從文件中擷取必要值。
{ $i/@LotSize } 運算式從文件中擷取 LotSize 屬性 (如果有的話)。
以下是結果:
ProductModelID Result
-------------- ------------------------------------------------------
7 <Location LocationID="10" LaborHrs="3" LotSize="100"/>
<Location LocationID="20" LaborHrs="2" LotSize="1"/>
<Location LocationID="30" LaborHrs="1" LotSize="1"/>
<Location LocationID="45" LaborHrs="1" LotSize="20"/>
<Location LocationID="60" LaborHrs="3" LotSize="1"/>
<Location LocationID="60" LaborHrs="4" LotSize="1"/>
實作限制
以下這些是限制:
- ceiling() 函數將所有整數值對應至 xs:decimal。