Funciones de constructor booleano: true (XQuery)
Se aplica a:SQL Server
Devuelve el valor xs:boolean True. Es equivalente a xs:boolean("1")
.
Sintaxis
fn:true() as xs:boolean
Ejemplos
En este tema se proporcionan ejemplos de XQuery en instancias XML almacenadas en varias columnas de tipo xml de la base de datos AdventureWorks.
A. Utilizar la función booleana true() de XQuery
En el ejemplo siguiente se consulta una variable xml sin tipo. La expresión del método value() devuelve Boolean true() si "aaa" es el valor del atributo. El método value() del tipo de datos xml convierte el valor booleano en un bit y lo devuelve.
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
En el ejemplo siguiente, la consulta se especifica en una columna xml con tipo. La if
expresión comprueba el valor booleano con tipo del <ROOT
> elemento y devuelve el XML construido, en consecuencia. En el ejemplo, se realizan las tareas siguientes:
Crea una colección de esquemas XML que define el <
ROOT
> elemento del tipo xs:boolean.Crea una tabla con una columna xml con tipo mediante la colección de esquemas XML.
Se guarda una instancia XML en la columna y se 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