true 함수(XQuery)

xs:boolean 값 True를 반환합니다. xs:boolean("1")과 같습니다.

구문

fn:true() as xs:boolean

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

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

다음 예에서는 형식화되지 않은 xml 변수를 쿼리합니다. value() 메서드의 식은 "aaa"가 특성 값인 경우 부울 **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)