Fungsi Agregat - min
Berlaku untuk:SQL Server
Mengembalikan dari urutan nilai atomik, $arg, satu item yang nilainya kurang dari yang lain.
Sintaks
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
Argumen
$arg
Urutan item untuk mengembalikan nilai minimum.
Keterangan
Semua jenis nilai yang diatomisasi yang diteruskan ke min() harus berupa subjenis dari jenis dasar yang sama. Jenis dasar yang diterima adalah jenis yang mendukung operasi gt . Jenis ini termasuk tiga jenis dasar numerik bawaan, jenis dasar tanggal/waktu, xs:string, xs:boolean, dan xdt:untypedAtomic. Nilai jenis xdt:untypedAtomic ditransmisikan ke xs:double. Jika ada campuran jenis ini, atau jika nilai lain dari jenis lain diteruskan, kesalahan statis akan muncul.
Hasil min() menerima jenis dasar dari jenis yang diteruskan, seperti xs:double dalam kasus xdt:untypedAtomic. Jika input kosong secara statis, kosong tersirat dan kesalahan statis dikembalikan.
Fungsi min() mengembalikan satu nilai dalam urutan yang lebih kecil dari yang lain dalam urutan input. Untuk nilai xs:string, Kolase Codepoint Unicode default sedang digunakan. Jika nilai xdt:untypedAtomic tidak dapat ditransmisikan ke xs:double, nilai diabaikan dalam urutan input, $arg. Jika input adalah urutan kosong yang dihitung secara dinamis, urutan kosong dikembalikan.
Contoh
Topik ini menyediakan contoh XQuery terhadap instans XML yang disimpan di berbagai kolom jenis xml di database AdventureWorks.
J. Menggunakan fungsi min() XQuery untuk menemukan lokasi pusat kerja yang memiliki jam kerja terkecil
Kueri berikut mengambil semua lokasi pusat kerja dalam proses manufaktur model produk (ProductModelID=7) yang memiliki jam kerja terkecil. Umumnya, seperti yang ditunjukkan dalam hal berikut, satu lokasi dikembalikan. Jika beberapa lokasi memiliki jumlah jam kerja minimum yang sama, semuanya akan dikembalikan.
select ProductModelID, Name, Instructions.query('
declare namespace AWMI=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $Location in /AWMI:root/AWMI:Location
where $Location/@LaborHours =
min( /AWMI:root/AWMI:Location/@LaborHours )
return
<Location WCID= "{ $Location/@LocationID }"
LaborHrs= "{ $Location/@LaborHours }" />
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
Perhatikan hal berikut ini dari kueri sebelumnya:
- Kata kunci namespace dalam prolog XQuery mendefinisikan awalan namespace. Awalan ini kemudian digunakan dalam isi XQuery.
Isi XQuery membangun XML yang memiliki <elemen Lokasi> dengan atribut WCID dan LaborHrs .
- Kueri juga mengambil nilai ProductModelID dan nama.
Ini adalah hasilnya:
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
Batasan Implementasi
Ini adalah batasannya:
Fungsi min() memetakan semua bilangan bulat ke xs:desimal.
Fungsi min() pada nilai jenis xs:duration tidak didukung.
Urutan yang mencampur jenis di seluruh batas jenis dasar tidak didukung.
Opsi syntactic yang menyediakan kolase tidak didukung.