유효한 부울 값(XQuery)

적용 대상:SQL Server

다음은 유효한 부울 값입니다.

  • 피연산자가 빈 시퀀스이거나 부울이 거짓인 경우 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)