Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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