다음을 통해 공유


min 함수(XQuery)

원자 값의 시퀀스 $arg에서 값이 다른 항목의 값보다 작은 한 항목을 반환합니다.

구문

fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?

인수

  • $arg
    최소값을 반환할 항목의 시퀀스입니다.

주의

**min()**에 전달된 세분화된 값의 모든 유형은 같은 기본 유형의 하위 유형이어야 합니다. 허용되는 기본 유형은 gt 작업을 지원하는 유형입니다. 이러한 유형에는 3가지 기본 제공 숫자 기본 유형, 날짜/시간 기본 유형, xs:string, xs:boolean 및 xdt:untypedAtomic이 포함됩니다. xdt:untypedAtomic 유형의 값이 xs:double로 캐스팅됩니다. 이러한 유형이 혼합되어 있거나 다른 유형의 다른 값이 전달되면 정적 오류가 발생합니다.

**min()**의 결과는 xdt:untypedAtomic의 경우 xs:double처럼 전달된 유형의 기본 유형을 받습니다. 입력이 정적으로 비어 있으면 비어 있다는 것이 유추되어 정적 오류가 반환됩니다.

min() 함수는 입력 시퀀스에서 다른 값보다 작은 값 하나를 시퀀스에 반환합니다. xs:string 값의 경우 기본 Unicode Codepoint Collation이 사용됩니다. xdt:untypedAtomic 값을 xs:double로 캐스팅할 수 없는 경우 이 값은 입력 시퀀스 $arg에서 무시됩니다. 입력이 동적으로 계산된 빈 시퀀스이면 빈 시퀀스가 반환됩니다.

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

1. min() XQuery 함수를 사용하여 노동 시간이 최소인 업무 센터 위치 찾기

다음 쿼리는 제품 모델(ProductModelID=7)의 제조 프로세스에서 노동 시간이 최소인 모든 업무 센터 위치를 검색합니다. 일반적으로 다음과 같이 한 위치가 반환됩니다. 여러 위치에서 최소 노동 시간이 같은 경우 해당 위치가 모두 반환됩니다.

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

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

  • XQuery 프롤로그에서 namespace 키워드는 네임스페이스 접두사를 정의합니다. 그러면 이 접두사는 XQuery 본문에 사용됩니다.

XQuery 본문은 WCID 및 LaborHrs 특성과 함께 <Location> 요소가 있는 XML을 구성합니다.

  • 또한 이 쿼리는 ProductModelID 및 이름 값을 검색합니다.

다음은 결과입니다.

ProductModelID   Name              Result
---------------  ----------------  ---------------------------------
7                HL Touring Frame  <Location WCID="45" LaborHrs="0.5"/> 

구현 시 제한 사항

제한 사항은 다음과 같습니다.

  • min() 함수는 모든 정수를 xs:decimal에 매핑합니다.

  • xs:duration 유형 값의 min() 함수는 지원되지 않습니다.

  • 여러 기본 유형 범위의 유형이 혼합된 시퀀스는 지원되지 않습니다.

  • 데이터 정렬을 제공하는 구문 옵션은 지원되지 않습니다.