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