數值函式 - 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 語句會指定為查詢方法的自變數。
為。。。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。