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ů:
Logické výrazy
Klauzule WHERE výrazu FLWOR
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)