Sdílet prostřednictvím


Platná logická hodnota (XQuery)

platí pro:SQL Server

Jedná se o efektivní logické hodnoty:

  • False, pokud je operand prázdná sekvence nebo logická hodnota false.

  • V opačném případě je hodnota true.

Efektivní logickou hodnotu lze vypočítat pro výrazy, které vracejí jednu logickou hodnotu, posloupnost uzlu nebo prázdnou sekvenci. Všimněte si, že logická hodnota se počítá implicitně při zpracování následujících typů výrazů:

Následuje příklad efektivní logické hodnoty. Když se , pokud se zpracuje výraz, určí se platná logická hodnota podmínky. Protože /a[1] vrací prázdnou sekvenci, je platná logická hodnota false. Výsledek se vrátí jako XML s jedním textovým uzlem (false).

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

V následujícím příkladu je platná logická hodnota true, protože výraz vrátí neprázdnou sekvenci.

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

Při dotazování na typ xml sloupců nebo proměnných můžete mít uzly logického typu. data() v tomto případě vrátí logickou hodnotu. Pokud výraz dotazu vrátí logickou hodnotu true, platná logická hodnota je true, jak je znázorněno v dalším příkladu. V příkladu je znázorněno také následující:

  • Vytvoří se kolekce schémat XML. Prvek <b> v kolekci je typu Boolean.

  • Typ xml proměnné je vytvořen a dotazován.

  • Výraz data(/b[1]) vrátí logickou hodnotu true. Efektivní logická hodnota v tomto případě je tedy pravdivá.

  • Výraz data(/b[2]) vrátí logickou hodnotu false. Proto je platná logická hodnota v tomto případě 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  

Viz také

základy XQuery
příkazu FLWOR a iterace (XQuery)