Bagikan melalui


Fungsi pada Urutan - kosong

Berlaku untuk: SQL Server

Mengembalikan True jika nilai $arg adalah urutan kosong. Jika tidak, fungsi mengembalikan False.

Sintaks

  
fn:empty($arg as item()*) as xs:boolean  

Argumen

$arg
Urutan item. Jika urutan kosong, fungsi mengembalikan True. Jika tidak, fungsi mengembalikan False.

Keterangan

Fungsi fn:exists() tidak didukung. Sebagai alternatif, fungsi not() dapat digunakan.

Contoh

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

J. Menggunakan fungsi XQuery kosong() untuk menentukan apakah atribut ada

Dalam proses manufaktur untuk Model Produk 7, kueri ini mengembalikan semua lokasi pusat kerja yang tidak memiliki atribut MachineHours .

SELECT ProductModelID, Instructions.query('  
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
     for $i in /AWMI:root/AWMI:Location[empty(@MachineHours)]  
     return  
       <Location  
            LocationID="{ ($i/@LocationID) }"  
            LaborHrs="{ ($i/@LaborHours) }" >  
            {   
              $i/@MachineHours  
            }    
       </Location>  
') as Result  
FROM Production.ProductModel  
where ProductModelID=7  

Ini adalah hasilnya:

ProductModelID      Result          
-------------- ------------------------------------------  
7              <Location LocationID="30" LaborHrs="1"/>  
               <Location LocationID="50" LaborHrs="3"/>  
               <Location LocationID="60" LaborHrs="4"/>  

Kueri berikut ini, sedikit dimodifikasi, mengembalikan "NotFound" jika atribut MachineHour tidak ada:

SELECT ProductModelID, Instructions.query('  
declare namespace p14="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
     for $i in /p14:root/p14:Location  
     return  
       <Location  
            LocationID="{ ($i/@LocationID) }"  
            LaborHrs="{ ($i/@LaborHours) }" >  
            {   
                 if (empty($i/@MachineHours)) then  
                    attribute MachineHours { "NotFound" }  
                 else  
                    attribute MachineHours { data($i/@MachineHours) }  
            }    
       </Location>  
') as Result  
FROM Production.ProductModel  
where ProductModelID=7  

Ini adalah hasilnya:

ProductModelID Result                         
-------------- -----------------------------------  
7                
  <Location LocationID="10" LaborHrs="2.5" MachineHours="3"/>  
  <Location LocationID="20" LaborHrs="1.75" MachineHours="2"/>  
  <Location LocationID="30" LaborHrs="1" MachineHours="NotFound"/>  
  <Location LocationID="45" LaborHrs="0.5" MachineHours="0.65"/>  
  <Location LocationID="50" LaborHrs="3" MachineHours="NotFound"/>  
  <Location LocationID="60" LaborHrs="4" MachineHours="NotFound"/>  

Lihat Juga

Fungsi XQuery terhadap Tipe Data xml
exist() Method (xml Data Type)