Bagikan melalui


Nilai Boolean Efektif (XQuery)

Berlaku untuk:SQL Server

Ini adalah nilai Boolean yang efektif:

  • False jika operand adalah urutan kosong atau boolean false.

  • Jika tidak, nilainya benar.

Nilai Boolean yang efektif dapat dihitung untuk ekspresi yang mengembalikan nilai Boolean tunggal, urutan simpul, atau urutan kosong. Perhatikan bahwa nilai Boolean dihitung secara implisit saat jenis ekspresi berikut diproses:

Berikut ini adalah contoh nilai Boolean yang efektif. Ketika ekspresi if diproses, nilai Boolean yang efektif dari kondisi ditentukan. Karena /a[1] mengembalikan urutan kosong, nilai Boolean yang efektif adalah false. Hasilnya dikembalikan sebagai XML dengan satu simpul teks (false).

value is false  
DECLARE @x XML  
SET @x = '<b/>'  
SELECT @x.query('if (/a[1]) then "true" else "false"')  
go  

Dalam contoh berikut, nilai Boolean yang efektif adalah true, karena ekspresi mengembalikan urutan tidak ada.

DECLARE @x XML  
SET @x = '<a/>'  
SELECT @x.query('if (/a[1]) then "true" else "false"')  
go  

Saat mengkueri kolom atau variabel xml yang di ketik, Anda bisa memiliki simpul jenis Boolean. Data () dalam hal ini mengembalikan nilai Boolean. Jika ekspresi kueri mengembalikan nilai true Boolean, nilai Boolean yang efektif adalah true, seperti yang ditunjukkan pada contoh berikutnya. Berikut ini juga diilustrasikan dalam contoh:

  • Koleksi skema XML dibuat. Elemen <b> dalam koleksi adalah jenis Boolean.

  • Variabel xml yang di ketik dibuat dan dikueri.

  • Ekspresi data(/b[1]) mengembalikan nilai true Boolean. Oleh karena itu, nilai Boolean yang efektif dalam hal ini adalah benar.

  • Ekspresi data(/b[2]) mengembalikan nilai palsu Boolean. Oleh karena itu, nilai Boolean yang efektif dalam kasus ini adalah false.

CREATE XML SCHEMA COLLECTION SC AS '  
<schema xmlns="http://www.w3.org/2001/XMLSchema">  
      <element name="s" type="string"/>  
      <element name="b" type="boolean"/>  
</schema>'  
go  
DECLARE @x XML(SC)  
SET @x = '<b>true</b><b>false</b>'  
SELECT @x.query('if (data(/b[1])) then "true" else "false"')  
SELECT @x.query('if (data(/b[2])) then "true" else "false"')  
go  

Lihat Juga

Dasar-Dasar XQuery
Pernyataan dan Iterasi FLWOR (XQuery)