Share via


Função true (XQuery)

Retorna o valor xs:boolean True. Isso é equivalente a xs:boolean("1").

Sintaxe

fn:true() as xs:boolean

Exemplos

Este tópico fornece exemplos de XQuery em instâncias XML armazenadas em várias colunas do tipo xml no banco de dados AdventureWorks. Para obter uma visão geral de cada uma dessas colunas, consulte Representação de tipo de dados xml no banco de dados do AdventureWorks.

A. Usando a função Booleana true() do XQuery

O exemplo a seguir examina uma variável xml não digitada. A expressão no método value() retornará Booleano true () se "aaa" for o valor de atributo. O método value() do tipo de dados xml converte o valor Booleano em um bit e o retorna.

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

No exemplo a seguir, a consulta é especificada em uma coluna xml digitada. A expressão if verifica o valor Booleano digitado do elemento <ROOT> e retorna o XML construído. O exemplo executa o seguinte:

  • Cria uma coleção de esquemas XML que define o elemento <ROOT> do tipo xs:boolean.

  • Cria uma tabela com uma coluna xml digitada usando a coleção de esquemas XML.

  • Salva uma instância XML na coluna e a consulta.

-- 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

Consulte também

Conceitos