Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bunlar etkin Boolean değerlerdir:
Eğer operand boş bir dizis veya Boolean yanlışsa yanlıştır.
Aksi takdirde, değer doğrudur.
Etkili Boolean değeri, tek bir Boolean değeri, bir düğüm dizisi veya boş bir dizi döndüren ifadeler için hesaplanabilir. Aşağıdaki ifade türleri işlendiğinde Boolean değerinin örtük olarak hesaplandığını unutmayın:
Mantıksal ifadeler
FLWOR ifadesinin WHERE cümlesi
Aşağıda etkin bir Boolean değeri örneği verilmiştir.
If ifadesi işlendiğinde, koşulun etkin Boolean değeri belirlenir. Boş bir dizi döndürdüğü /a[1] için, etkin Boolean değeri yanlıştır. Sonuç XML olarak döner, bir metin düğümü (yanlış).
value is false
DECLARE @x XML
SET @x = '<b/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
Aşağıdaki örnekte, etkili Boolean değeri doğrudur, çünkü ifade boş olmayan bir dizi döndürür.
DECLARE @x XML
SET @x = '<a/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
Tiplenmiş xml sütunları veya değişkenleri sorgulatırken, Boolean tipinde düğümler olabilir. Bu durumda data() bir Boolean değeri döndürür. Eğer sorgu ifadesi Boolean gerçek değer döndürüyorsa, etkin Boolean değeri doğrudur, bu da aşağıdaki örnekte gösterilmiştir. Aşağıdaki örnekte ayrıca gösterilmiştir:
Bir XML şema koleksiyonu oluşturulur. Koleksiyondaki b> elemanı <Boolean tipindendir.
Tiplenmiş bir xml değişkeni oluşturulur ve sorgulanır.
Bu ifade
data(/b[1])Boolean gerçek değer döndürür. Bu nedenle, bu durumda etkin Boolean değeri doğrudur.Bu ifade
data(/b[2])Boolean yanlış bir değer döndürür. Bu nedenle, bu durumda etkin Boolean değeri yanlıştır.
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