Sdílet prostřednictvím


Funkce číselných hodnot – strop

platí pro:SQL Server

Vrátí nejmenší číslo bez desetinné části, které není menší než hodnota argumentu. Pokud je argument prázdnou sekvencí, vrátí prázdnou sekvenci.

Syntax

  
fn:ceiling ( $arg as numeric?) as numeric?  

Argumenty

$arg
Číslo, na které se funkce použije.

Poznámky

Pokud je typ $arg jedním ze tří číselných základních typů, xs:float, xs:doublenebo xs:decimal, návratový typ je stejný jako typ $arg.

Pokud je typ $arg typ odvozený z jednoho z číselných typů, je návratovým typem základní číselný typ.

Pokud je vstup funkce fn:floor, fn:ceiling nebo fn:round xdt:untypedAtomic, implicitně přetypuje na xs:double.

Jakýkoli jiný typ vygeneruje statickou chybu.

Příklady

Toto téma obsahuje příklady XQuery pro instance XML, které jsou uloženy v různých xml sloupce typu v databázi AdventureWorks.

A. Použití funkce ceiling() XQuery

Pro produktový model 7 tento dotaz vrátí seznam umístění pracovních center ve výrobním procesu modelu produktu. Pro každé umístění pracovního centra dotaz vrátí ID umístění, pracovní dobu a velikost lotu, pokud je dokumentováno. Dotaz používá funkci stropu k vrácení pracovních hodin jako hodnot typu desetinných.

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  

Všimněte si následujících věcí z předchozího dotazu:

  • Předpona oboru názvů AWMI je zkratka pro Adventure Works Manufacturing Instructions. Tato předpona odkazuje na stejný obor názvů použitý v dotazovaném dokumentu.

  • Pokyny je sloupec typu xml. Proto metody query() (datový typ XML) se používá k určení XQuery. Příkaz XQuery je určen jako argument metody dotazu.

  • pro ... return je konstrukce smyčky. V dotazu smyčky identifikuje seznam prvků <Location>. Pro každé umístění pracovního centra vrátí příkaz ve smyčce pro popis xml, který se má vygenerovat:

    • Prvek <Location> s atributy LocationID a LaborHrs. Odpovídající výraz uvnitř složených závorek ({ }) načte požadované hodnoty z dokumentu.

    • Výraz { $i/@LotSize } načte atribut LotSize z dokumentu, pokud je k dispozici.

    • Toto je výsledek:

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"/>  

Omezení implementace

Toto jsou omezení:

  • Funkce ceiling() mapuje všechny celočíselné hodnoty na xs:decimal.

Viz také

podlahové funkce (XQuery)
kulaté funkce (XQuery)