true 함수(XQuery)
xs:boolean 값 True를 반환합니다. xs:boolean("1")과 같습니다.
구문
fn:true() as xs:boolean
예
이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 유형 열에 저장된 XML 인스턴스에 대한 XQuery 예를 제공합니다. 이러한 각 열에 대한 개요는 AdventureWorks 데이터베이스의 xml 데이터 형식 표시를 참조하십시오.
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