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 AdventureWorks2008R2. Para obter uma visão geral de cada uma dessas colunas, consulte Representação de tipo de dados xml no banco de dados do AdventureWorks2008R2.
A. Usando a função Booleana true() do XQuery
O exemplo a seguir examina uma variável xml sem tipo. A expressão no método value() retornará Booliano true() se "aaa" for o valor do atributo. O método value() do tipo de dados xml converte o valor Booliano 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 com tipo. A expressão if verifica o valor Booliano 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