Udostępnij przez


Skuteczne logiczny (XQuery)

Są to efektywne logiczny wartości:

  • Wartość false, jeśli argument jest sekwencją pusta lub logiczny FAŁSZ.

  • W przeciwnym razie ma wartość true.

Skuteczne logiczny może być obliczona dla wyrażenia, które zwracają logiczny właściwości pojedynczego, sekwencja węzłów lub sekwencję puste.Należy zauważyć, że logiczny jest obliczana niejawnie podczas przetwarzania następujących typów wyrażeń:

Oto przykład o efektywnej logiczny wartości.Gdy if wyrażenie jest przetwarzany, efektywne logiczny warunku. Ponieważ /a[1] Zwraca pusty sekwencję skuteczne logiczny ma wartość false. Wyniki są zwracane jako XML z węzłem jeden tekst (FAŁSZ).

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

W poniższym przykładzie efektywne logiczny ma wartość true, ponieważ wyrażenie zwraca niepustą sekwencję.

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

Gdy wpisana podczas badania xml kolumny lub zmienne mogą być węzłów typu logiczny. The data() in this przypadek returns a logiczny value. Jeśli wyrażenie kwerendy zwraca logiczny PRAWDA, efektywne logiczna ma wartość true, jak pokazano w następnym przykładzie.Poniżej jest również pokazano w przykładzie:

  • Tworzony jest kolekcja schematu XML.Element <b> w kolekcja jest typu logiczny.

  • Maszynowy xml Zmienna jest tworzona i przesłania.

  • Wyrażenie data(/b[1]) Zwraca logiczny PRAWDA. Dlatego skuteczne logiczne w tym przypadek ma wartość true.

  • Wyrażenie data(/b[2]) Zwraca logiczny FAŁSZ. W związku z tym w tym przypadek skuteczne logiczny jest, wartość 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