유효한 부울 값(XQuery)
적용 대상: SQL Server
다음은 유효한 부울 값입니다.
피연산자가 빈 시퀀스이거나 부울이 거짓인 경우 False입니다.
그렇지 않으면 값이 true입니다.
유효 부울 값은 단일 부울 값, 노드 시퀀스 또는 빈 시퀀스를 반환하는 식에 대해 계산할 수 있습니다. 부울 값은 다음 형식의 식이 처리될 때 암시적으로 계산됩니다.
논리 식
FLWOR 식의 WHERE 절
다음은 유효 부울 값의 예입니다. 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