다음을 통해 공유


부울 생성자 함수 - true(XQuery)

적용 대상:SQL Server

xs:boolean 값 True를 반환합니다. xs:boolean("1")와 동일합니다.

구문

fn:true() as xs:boolean  

이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 형식 열에 저장된 XML 인스턴스에 대한 XQuery 예제를 제공합니다.

A. true() XQuery 부울 함수 사용

다음 예제에서는 형식 화되지 않은 xml 변수를 쿼리합니다. value() 메서드의 식은 "aaa"가 특성 값이면 Boolean true()를 반환합니다. xml 데이터 형식의 value() 메서드는 부울 값을 비트로 변환하고 반환합니다.

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  

다음 예제에서는 형식 화된 xml 열에 대해 쿼리를 지정합니다. 식은 if 요소의 <ROOT> 형식화된 부울 값을 확인하고 그에 따라 생성된 XML을 반환합니다. 이 예제에서는 다음을 수행합니다.

  • xs:boolean 형식의 요소를 정의하는 <ROOT> XML 스키마 컬렉션을 만듭니다.

  • XML 스키마 컬렉션을 사용하여 형식화된 xml 열이 있는 테이블을 만듭니다.

  • 열에 XML 인스턴스를 저장하고 쿼리합니다.

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

참고 항목

부울 생성자 함수(XQuery)