논리 식(XQuery)

적용 대상:SQL Server

XQuery는 논리 및 또는 연산자를 지원합니다.

expression1 and expression2  
expression1 or expression2  

SQL Server의 테스트 식 expression1,``expression2은 빈 시퀀스, 하나 이상의 노드 시퀀스 또는 단일 부울 값을 초래할 수 있습니다. 결과에 따라 유효한 부울 값은 다음과 같은 방식으로 결정됩니다.

  • 테스트 식에서 빈 시퀀스가 발생하는 경우 식의 결과는 False입니다.

  • 테스트 식의 결과로 단일 부울 값이 생성되면 이 값이 식의 결과입니다.

  • 테스트 식에서 하나 이상의 노드 시퀀스가 발생하는 경우 식의 결과는 True입니다.

  • 위의 경우 중 하나에 해당하지 않으면 정적 오류가 발생합니다.

그런 다음, 논리 및 또는 연산자가 표준 논리 의미 체계를 사용하여 식의 결과 부울 값에 적용됩니다.

다음 쿼리는 제품 카탈로그에서 특정 제품 모델에 대한 전면 각도의 작은 그림인 <Picture> 요소를 검색합니다. 각 제품 설명 문서에 대해 카탈로그는 크기 및 각도와 같은 다양한 특성을 가진 하나 이상의 제품 그림을 저장할 수 있습니다.

SELECT CatalogDescription.query('  
     declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";  
     for $F in /PD:ProductDescription/PD:Picture[PD:Size="small"   
                                                 and PD:Angle="front"]  
     return   
         $F   
    ') as Result  
FROM  Production.ProductModel  
where ProductModelID=19  

다음은 결과입니다.

<PD:Picture   
  xmlns:PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">  
  <PD:Angle>front</PD:Angle>  
  <PD:Size>small</PD:Size>  
  <PD:ProductPhotoID>31</PD:ProductPhotoID>  
</PD:Picture>