유효한 부울 값(XQuery)
다음은 유효한 부울 값입니다.
- 피연산자가 빈 시퀀스이거나 부울이 거짓인 경우 False입니다.
- 그렇지 않으면 값이 True입니다.
유효한 부울 값은 단일 부울 값, 노드 시퀀스 또는 빈 시퀀스를 반환하는 식에 대해 계산될 수 있습니다. 다음 유형의 식을 처리할 때는 부울 값이 암시적으로 계산됩니다.
다음은 유효한 부울 값 예입니다. if 식을 처리하는 경우 조건에 따라 유효한 부울 값이 결정됩니다. /a[1]
은 빈 시퀀스를 반환하기 때문에 유효한 부울 값은 False입니다. 결과는 하나의 텍스트 노드(False)가 포함된 XML로 반환됩니다.
value is false
DECLARE @x XML
SET @x = '<b/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
다음 예에서는 식이 비어 있지 않은 시퀀스를 반환하기 때문에 유효한 부울 값이 True입니다.
DECLARE @x XML
SET @x = '<a/>'
SELECT @x.query('if (/a[1]) then "true" else "false"')
go
형식화된 xml 열이나 변수를 쿼리할 때는 부울 유형의 노드를 가질 수 있습니다. 이 경우 **data()**는 부울 값을 반환합니다. 쿼리 식이 부울 값 True를 반환하는 경우 유효한 부울 값은 다음 예에서와 같이 True입니다. 이 예에는 다음 내용에 대해서도 설명됩니다.
- XML 스키마 컬렉션이 생성됩니다. 컬렉션에 있는 <b> 요소는 부울 유형입니다.
- 형식화된 xml 변수가 생성 및 쿼리됩니다.
data(/b[1])
식은 부울 값 True를 반환합니다. 따라서 이 경우 유효한 부울 값은 True입니다.data(/b[2])
식은 부울 값 False를 반환합니다. 따라서 이 경우 유효한 부울 값은 False입니다.
CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="s" type="string"/>
<element name="b" type="boolean"/>
</schema>'
go
DECLARE @x XML(SC)
SET @x = '<b>true</b><b>false</b>'
SELECT @x.query('if (data(/b[1])) then "true" else "false"')
SELECT @x.query('if (data(/b[2])) then "true" else "false"')
go
참고 항목
개념
XQuery 기초
FLWOR 문 및 반복(XQuery)