Tavan işlev (XQuery)
Kesirli bir parçası ve en az onun bağımsız değişkenin değeri olmadan en küçük sayıyı verir. Bağımsız değişken boş sırası ise, boş sırası döndürür.
Sözdizimi
fn:ceiling ( $arg as numeric?) as numeric?
Bağımsız değişkenler
- $arg
Işlev uygulandığı numarası.
Açıklamalar
Eğer türü $argüç sayısal temel türlerinden biri xs: float, xs: Double, veya xs: decimal, dönüş türü aynı olan $argtürü.
Eğer türü $argsayısal türleri birinden elde edilen bir tür dönüş türü temel sayısal türüdür.
FN: Floor, FN: ceiling veya FN: round işlevleri girişi ise xdt: untypedAtomic, örtülü olarak için atıldı xs: Double.
Başka bir türü statik bir hata üretir.
Örnekler
Bu konu çeşitli depolanan xml örnekleri karşı XQuery örnekler sağlar xml AdventureWorks veritabanındaki sütunları yazın. Bu sütunlar genel bakış için bkz: DEL - xml Data Type Representation in the AdventureWorks2008R2 Database.
A.Ceiling() XQuery işlevini kullanma
Ürün modeli 7 için bu sorgu, ürün modeli üretim sürecinde iş merkezi konumları listesini döndürür. Her iş merkezi konumu, konum kodu, işçilik saat ve lot boyutu, belgelenen Eğer sorgu döndürür. Sorgu kullanır tavan işçilik saat türü değerleri olarak dönmek için işlevi ondalık.
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
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
Önceki sorgudan aşağıdakilere dikkat edin:
Ad alanı öneki AWMI Adventure Works üretim yönergeleri için duruyor. Bu önek sorgulanan belgede kullanılan aynı ad alanını gösterir.
Yönergeleri olan bir xml sütun türü. Bu nedenle, query() yöntemi (xml veri türü) XQuery belirtmek için kullanılır. XQuery deyimini sorgu yöntemine argüman olarak belirtilir.
için... dönüş bir döngü yapıdır. Sorgu, için döngü tanımlar listesi <yer> öğeleri. Her iş merkezi konumu dönmek deyimi için döngüsü açıklar xml oluşturulacak:
A <yer> LocationID ve LaborHrs öznitelikleri olan öğe. İlgili ifade kaşlı ayraç ({}) içinde belge için gerekli değerleri alır.
{$İ/@LotSize} ifadesi LotSize özniteliği varsa belgeden alır.
Sonuç şudur:
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"/>
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"/>
Uygulama kısıtlamaları
Bu sınırlamalar şunlardır:
- Ceiling() işlevi tüm tamsayı değerler için xs: decimal eşleştirir.