Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Ezek a effektív Boole-értékek:
Tátos, ha az operand üres vagy Boole-i hamis.
Ellenkező esetben az érték igaz.
Az effektív Boole-érték kiszámítható olyan kifejezésekre, amelyek egyetlen Boole-értéket, csomópont-sorozatot vagy üres sorozatot adnak vissza. Megjegyzendő, hogy a Boole-értéket implicit módon számítják ki, amikor a következő típusú kifejezéseket dolgozzák fel:
Logikai kifejezések
A FLWOR kifejezés WHERE klauzulája
Az alábbiakban egy példa egy effektív Boole-értékre. Amikor az if-kifejezést feldolgozjuk, a feltétel effektív Boole-értéke kerül meghatározásra. Mivel /a[1] üres sorozatot ad vissza, az effektív Boole-érték hamis. Az eredmény XML-ként jelenik meg egy szövegcsomóponttal (hamis).
value is false
DECLARE @x XML
SET @x = '<b/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
A következő példában az effektív Boole-érték igaz, mert az kifejezés nem üres sorozatot ad vissza.
DECLARE @x XML
SET @x = '<a/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
Gépelt xml oszlopok vagy változók lekérdezésekor lehetnek Boolean típusú csomópontok. Ebben az esetben az data() egy Boole-értéket ad vissza. Ha a lekérdezési kifejezés Boole-értéket ad vissza, akkor az effektív Boole-érték igaz, ahogy azt a következő példa is mutatja. Az alábbiakat is szemlélteti a példa:
Egy XML sémagyűjtemény jön létre. A gyűjteményben található b> elem <Boole-típusú.
Egy típusozott xml változót hoznak létre és lekérdezik.
Az adott kifejezés
data(/b[1])egy Boole-értéket ad vissza. Ezért ebben az esetben az effektív Boole-érték igaz.Az kifejezés
data(/b[2])egy Boole-téves értéket ad vissza. Ezért ebben az esetben a hatékony Boole-érték hamis.
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