數值函式 - ceiling
適用於:SQL Server
傳回不含小數部分且不小於其引數值的最小數位。 如果引數是空序列,則會傳回空序列。
語法
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 。
任何其他類型都會產生靜態錯誤。
範例
本主題針對 AdventureWorks 資料庫中各種 xml 類型資料行中儲存的 XML 實例,提供 XQuery 範例。
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。 此前置詞是指所查詢檔中使用的相同命名空間。
指令是 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。