有效的布林值 (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