다음을 통해 공유


시퀀스 함수 - empty

적용 대상: SQL Server

$arg이 빈 시퀀스이면 True를 반환합니다. 그렇지 않으면 함수는 False를 반환합니다.

구문

  
fn:empty($arg as item()*) as xs:boolean  

인수

$arg
항목의 시퀀스입니다. 시퀀스가 비어 있으면 함수는 True를 반환합니다. 그렇지 않으면 함수는 False를 반환합니다.

설명

fn:exists() 함수는 지원되지 않습니다. 또는 not() 함수를 사용할 수 있습니다.

예제

이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 형식 열에 저장된 XML 인스턴스에 대한 XQuery 예제를 제공합니다.

A. empty() XQuery 함수를 사용하여 특성이 있는지 확인

제품 모델 7의 제조 프로세스에서 이 쿼리는 MachineHours 특성이 없는 모든 작업 센터 위치를 반환합니다.

SELECT ProductModelID, Instructions.query('  
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
     for $i in /AWMI:root/AWMI:Location[empty(@MachineHours)]  
     return  
       <Location  
            LocationID="{ ($i/@LocationID) }"  
            LaborHrs="{ ($i/@LaborHours) }" >  
            {   
              $i/@MachineHours  
            }    
       </Location>  
') as Result  
FROM Production.ProductModel  
where ProductModelID=7  

다음은 결과입니다.

ProductModelID      Result          
-------------- ------------------------------------------  
7              <Location LocationID="30" LaborHrs="1"/>  
               <Location LocationID="50" LaborHrs="3"/>  
               <Location LocationID="60" LaborHrs="4"/>  

MachineHour 특성이 없으면 약간 수정된 다음 쿼리는 "NotFound"를 반환합니다.

SELECT ProductModelID, Instructions.query('  
declare namespace p14="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";  
     for $i in /p14:root/p14:Location  
     return  
       <Location  
            LocationID="{ ($i/@LocationID) }"  
            LaborHrs="{ ($i/@LaborHours) }" >  
            {   
                 if (empty($i/@MachineHours)) then  
                    attribute MachineHours { "NotFound" }  
                 else  
                    attribute MachineHours { data($i/@MachineHours) }  
            }    
       </Location>  
') as Result  
FROM Production.ProductModel  
where ProductModelID=7  

다음은 결과입니다.

ProductModelID Result                         
-------------- -----------------------------------  
7                
  <Location LocationID="10" LaborHrs="2.5" MachineHours="3"/>  
  <Location LocationID="20" LaborHrs="1.75" MachineHours="2"/>  
  <Location LocationID="30" LaborHrs="1" MachineHours="NotFound"/>  
  <Location LocationID="45" LaborHrs="0.5" MachineHours="0.65"/>  
  <Location LocationID="50" LaborHrs="3" MachineHours="NotFound"/>  
  <Location LocationID="60" LaborHrs="4" MachineHours="NotFound"/>  

참고 항목

xml 데이터 형식에 대한 XQuery 함수
exist() 메서드(xml 데이터 형식)