有效的布林值 (XQuery)
適用於:SQL Server
以下是有效的布林值:
如果操作數是空序列或布爾值 false,則為 False。
否則,值為 true。
對於傳回單一布爾值、節點序列或空序列的表達式,可以計算有效的布爾值。 請注意,處理下列運算式類型時,會隱含計算布林值:
邏輯運算式
not 函 式
FLWOR 表達式的 WHERE 子句
以下是有效的布爾值範例。 處理 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