次の方法で共有


有効なブール値 (XQuery)

次に有効なブール値を示します。

  • オペランドが空のシーケンスまたはブール型の false である場合、false になります。

  • それ以外の場合、値は true になります。

有効なブール値は、1 つのブール値、ノード シーケンス、または空のシーケンスを返す式で計算できます。 次の型の式が処理されるとき、ブール値が暗黙的に計算されます。

次に、有効なブール値の例を示します。 if 式が処理されるときに、条件で有効なブール値が決まります。 /a[1] は空のシーケンスを返すので、有効なブール値は false になります。 1 つのテキスト ノード (false) を含む XML として結果が返されます。

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

関連項目

概念

FLWOR ステートメントと繰り返し (XQuery)

その他の技術情報

XQuery の基礎