Bagikan melalui


Fungsi Nilai Numerik - langit-langit

Berlaku untuk:SQL Server

Mengembalikan angka terkecil tanpa bagian pecahan dan tidak kurang dari nilai argumennya. Jika argumen adalah urutan kosong, argumen akan mengembalikan urutan kosong.

Sintaks

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

Argumen

$arg
Nomor tempat fungsi diterapkan.

Keterangan

Jika jenis $arg adalah salah satu dari tiga jenis dasar numerik, xs:float, xs:double, atau xs:desimal, jenis pengembalian sama dengan jenis $arg .

Jika jenis $arg adalah jenis yang berasal dari salah satu jenis numerik, jenis pengembalian adalah jenis numerik dasar.

Jika input ke fungsi fn:floor, fn:ceiling, atau fn:round adalah xdt:untypedAtomic, secara implisit ditransmisikan ke xs:double.

Jenis lain menghasilkan kesalahan statis.

Contoh

Topik ini menyediakan contoh XQuery terhadap instans XML yang disimpan di berbagai kolom jenis xml di database AdventureWorks.

J. Menggunakan fungsi XQuery ceiling()

Untuk model produk 7, kueri ini mengembalikan daftar lokasi pusat kerja dalam proses manufaktur model produk. Untuk setiap lokasi pusat kerja, kueri mengembalikan ID lokasi, jam kerja, dan ukuran lot, jika didokumenkan. Kueri menggunakan fungsi langit-langit untuk mengembalikan jam kerja sebagai nilai desimal jenis.

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  

Perhatikan hal berikut ini dari kueri sebelumnya:

  • Awalan namespace layanan AWMI adalah singkatan dari Instruksi Manufaktur Adventure Works. Awalan ini mengacu pada namespace yang sama yang digunakan dalam dokumen yang sedang dikueri.

  • Instruksi adalah kolom jenis xml . Oleh karena itu, metode query() (jenis data XML) digunakan untuk menentukan XQuery. Pernyataan XQuery ditentukan sebagai argumen ke metode kueri.

  • bagi... return adalah konstruksi perulangan. Dalam kueri, untuk perulangan mengidentifikasi daftar <elemen Lokasi> . Untuk setiap lokasi pusat kerja, pernyataan pengembalian dalam untuk perulangan menjelaskan XML yang akan dihasilkan:

    • <Elemen Lokasi> yang memiliki atribut LocationID dan LaborHrs. Ekspresi yang sesuai di dalam kurung kurawal ({ }) mengambil nilai yang diperlukan dari dokumen.

    • Ekspresi { $i/@LotSize } mengambil atribut LotSize dari dokumen, jika ada.

    • Ini adalah hasilnya:

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

Batasan Implementasi

Ini adalah batasannya:

  • Fungsi ceiling() memetakan semua nilai bilangan bulat ke xs:desimal.

Lihat Juga

fungsi lantai (XQuery)
Round Function (XQuery)