分享方式:


有效的布林值 (XQuery)

適用於:SQL Server

以下是有效的布林值:

  • 如果運算元是空序列或布林值 false,則為 False。

  • 否則,值為 true。

對於傳回單一布林值、節點序列或空序列的運算式,可以計算有效的布林值。 請注意,處理下列運算式類型時,會隱含計算布林值:

以下是有效的布林值範例。 處理 if 運算式時,會決定條件的有效布林值。 因為 /a[1] 會傳回空序列,因此有效的布林值為 false。 結果會以 XML 的形式傳回,其中一個文位元組點為 false。

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

在下列範例中,有效的布林值為 true,因為運算式會傳回非空白序列。

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

查詢具類型的 xml 資料 行或變數時,您可以有布林類型的節點。 在此情況下,data() 會傳回布林值。 如果查詢運算式傳回布林值 true 值,則有效的布林值為 true,如下一個範例所示。 下列範例也會說明:

  • 會建立 XML 架構集合。 集合中的專案 < b > 是布林型別。

  • 系統會建立並查詢具類型的 xml 變數。

  • 運算式 data(/b[1]) 會傳回布林值 true 值。 因此,在此案例中有效的布林值是 true。

  • 運算式 data(/b[2]) 會傳回布林值 false 值。 因此,在此案例中有效的布林值是 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  

另請參閱

XQuery 基本概念
FLWOR 語句和反復專案 (XQuery)