分享方式:


數值函式 - 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。

另請參閱

floor 函式 (XQuery)
round 函式 (XQuery)