Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
gäller för:SQL Server
Returnerar värdet xs:booleskt true. Detta motsvarar xs:boolean("1").
Syntax
fn:true() as xs:boolean
Exempel
Det här avsnittet innehåller XQuery-exempel mot XML-instanser som lagras i olika XML- typkolumner i AdventureWorks-databasen.
A. Använda funktionen true() XQuery Boolean
I följande exempel efterfrågas en otypad xml- variabel. Uttrycket i metoden value() returnerar boolesk true() om "aaa" är attributvärdet. Metoden value() för xml- datatyp konverterar det booleska värdet till en bit och returnerar det.
DECLARE @x XML
SET @x= '<ROOT><elem attr="aaa">bbb</elem></ROOT>'
select @x.value(' if ( (/ROOT/elem/@attr)[1] eq "aaa" ) then fn:true() else fn:false() ', 'bit')
go
-- result = 1
I följande exempel anges frågan mot en skriven xml- kolumn. Uttrycket if kontrollerar det inskrivna booleska värdet för <ROOT>-elementet och returnerar därför den konstruerade XML:en. Exemplet utför följande:
Skapar en XML-schemasamling som definierar det <
ROOT> elementet av typen xs:boolean.Skapar en tabell med en skriven xml- kolumn med hjälp av XML-schemasamlingen.
Sparar en XML-instans i kolumnen och frågar den.
-- Drop table if exist
--DROP TABLE T
--go
DROP XML SCHEMA COLLECTION SC
go
CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="QNameXSD" >
<element name="ROOT" type="boolean" nillable="true"/>
</schema>'
go
CREATE TABLE T (xmlCol XML(SC))
go
-- following OK
insert into T values ('<ROOT xmlns="QNameXSD">true</ROOT>')
go
-- Retrieve the local name.
SELECT xmlCol.query('declare namespace a="QNameXSD";
if (/a:ROOT[1] eq true()) then
<result>Found boolean true</result>
else
<result>Found boolean false</result>')
FROM T
-- result = <result>Found boolean true</result>
-- Clean up
DROP TABLE T
go
DROP XML SCHEMA COLLECTION SC
go