Boolean Yapıcı Fonksiyonlar - doğru (XQuery)

Şunlar için geçerlidir: SQL Server

xs:boolean değeri True döndürür. Bu, xs:boolean("1")eşdeğerdir.

Syntax

fn:true() as xs:boolean  

Examples

Bu konu, AdventureWorks veritabanındaki çeşitli xml türü sütunlarında depolanan XML örneklerine karşı XQuery örnekleri sağlar.

A. true() XQuery Boolean fonksiyonunun kullanılması

Aşağıdaki örnek, tiplenmemiş bir xml değişkenini sorgular. value() metodundaki ifade, "aaa" öznitelik değeri ise Boolean true() döner. xml veri tipinin value() yöntemi, Boolean değeri bit'e dönüştürür ve döndürür.

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  

Aşağıdaki örnekte, sorgu tiplenmiş bir xml sütununa karşı belirtilmiştir. İfade, if elemanın <ROOT> tiplenen Boolean değerini kontrol eder ve buna göre oluşturulmuş XML'i döndürür. Örnek aşağıdakileri gerçekleştirir:

  • xs:boolean tipinin elemanını tanımlayan <ROOT> bir XML şema koleksiyonu oluşturur.

  • XML şema koleksiyonunu kullanarak tiplenmiş xml sütunlu bir tablo oluşturur.

  • Bir XML örneğini sütunda kaydeder ve sorgular yapar.

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