count 함수(XQuery)

$arg에 지정된 시퀀스에 포함된 항목 수를 반환합니다.

구문

fn:count($arg as item()*) as xs:integer

인수

  • $arg
    수를 셀 항목입니다.

주의

$arg가 빈 시퀀스일 경우 0을 반환합니다.

이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 유형 열에 저장된 XML 인스턴스에 대한 XQuery 예를 제공합니다. 이러한 각 열에 대한 개요는 AdventureWorks 데이터베이스의 xml 데이터 형식 표시를 참조하십시오.

1. 제품 모델을 제조할 때 count() XQuery 함수를 사용하여 업무 센터 위치 수 계산

다음 쿼리에서는 제품 모델(ProductModelID=7)의 제조 프로세스에서 업무 센터 위치 수를 계산합니다.

SELECT Production.ProductModel.ProductModelID, 
       Production.ProductModel.Name, 
       Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
       <NoOfWorkStations>
          { count(/AWMI:root/AWMI:Location) }
       </NoOfWorkStations>
') as WorkCtrCount
FROM Production.ProductModel
WHERE Production.ProductModel.ProductModelID=7

이전 쿼리에서 다음을 유의하십시오.

  • XQuery 프롤로그namespace 키워드가 네임스페이스 접두사를 정의합니다. 그러면 XQuery 본문에 접두사가 사용됩니다.
  • 쿼리가 <NoOfWorkStations> 요소를 포함하는 XML을 생성합니다.
  • XQuery 본문의 count() 함수가 <Location> 요소 수를 계산합니다.

다음은 결과입니다.

ProductModelID   Name                 WorkCtrCount     
-------------- ---------------------------------------------------
7             HL Touring Frame  <NoOfWorkStations>6</NoOfWorkStations>   

다음 쿼리와 같이 제품 모델 ID와 이름을 포함하도록 XML을 생성할 수도 있습니다.

SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
<NoOfWorkStations
ProductModelID= "{ sql:column("Production.ProductModel.ProductModelID") }" 
ProductModelName = "{ sql:column("Production.ProductModel.Name") }" >
{ count(/AWMI:root/AWMI:Location) }
</NoOfWorkStations>
') as WorkCtrCount
FROM Production.ProductModel
WHERE Production.ProductModel.ProductModelID= 7

다음은 결과입니다.

<NoOfWorkStations ProductModelID="7" 
                  ProductModelName="HL Touring Frame">6</NoOfWorkStations>

다음 쿼리와 같이 XML 대신 이러한 값을 비-xml 유형으로 반환할 수도 있습니다. 쿼리에서는 value() 메서드(xml 데이터 유형)를 사용하여 업무 센터 위치 수를 검색합니다.

SELECT  ProductModelID, 
        Name, 
        Instructions.value('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
           count(/AWMI:root/AWMI:Location)', 'int' ) as WorkCtrCount
FROM Production.ProductModel
WHERE ProductModelID=7

다음은 결과입니다.

ProductModelID    Name            WorkCtrCount
-------------- ---------------------------------
7              HL Touring Frame        6   

참고 항목

참조

xml 데이터 형식에 대한 XQuery 함수

도움말 및 정보

SQL Server 2005 지원 받기