Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Oto efektywne wartości boolowskie:
Fałsz, jeśli operand jest ciągiem pustym lub fałszem booleowskim.
W przeciwnym razie wartość jest prawdziwa.
Efektywną wartość boolowską można obliczyć dla wyrażeń, które zwracają pojedynczą wartość boolowską, sekwencję węzłów lub pustą sekwencję. Należy zauważyć, że wartość boolowska jest obliczana domyślnie, gdy przetwarzane są następujące typy wyrażeń:
Wyrażenia logiczne
Klauzula WHERE w wyrażeniu FLWOR
Poniżej znajduje się przykład efektywnej wartości boolowskiej. Gdy wyrażenie if jest przetwarzane, określa się efektywną wartość boolowską warunku. Ponieważ /a[1] zwraca pusty ciąg, efektywna wartość boolowska jest fałszywa. Wynik jest zwracany jako XML z jednym węzłem tekstowym (false).
value is false
DECLARE @x XML
SET @x = '<b/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
W następującym przykładzie efektywna wartość boolowska jest prawdziwa, ponieważ wyrażenie zwraca ciąg niepusty.
DECLARE @x XML
SET @x = '<a/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
Podczas zapytań o kolumny lub zmienne xml można mieć węzły typu Boole'a. Data () w tym przypadku zwraca wartość boolowską. Jeśli wyrażenie zapytania zwraca prawdziwą wartość boolowską, efektywna wartość boole'a jest prawdziwa, jak pokazano w następnym przykładzie. Następuje również ilustracja na tym przykładzie:
Zostanie utworzona kolekcja schematów XML. Element <b> w kolekcji ma typ boole'a.
Tworzona jest i zapytywana jest typowa zmienna xml .
Wyrażenie
data(/b[1])zwraca wartość boolowską prawdziwą. Dlatego efektywna wartość boolowska w tym przypadku jest prawdziwa.Wyrażenie
data(/b[2])zwraca fałszywą wartość boolowską. Dlatego efektywna wartość boolowska w tym przypadku jest fałszywa.
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