산술 식(XQuery)

idiv를 제외한 모든 산술 연산자가 지원됩니다. 다음 예에서는 산술 연산자의 기본 사용 방법을 보여 줍니다.

DECLARE @x xml
SET @x=''
SELECT @x.query('2 div 2')
SELECT @x.query('2 * 2')

idiv는 지원되지 않기 때문에 솔루션에서는 xs:integer() 생성자가 사용됩니다.

DECLARE @x xml
SET @x=''
-- Following will not work
-- SELECT @x.query('2 idiv 2')
-- Workaround 
SELECT @x.query('xs:integer(2 div 3)')

산술 연산자로부터의 결과 유형은 입력 값의 유형을 기반으로 합니다. 피연산자의 유형이 다른 경우 필요한 경우 둘 중 하나 또는 둘 모두가 유형 계층에 따라 공통된 기본 유형으로 형변환됩니다. 유형 계층에 대한 자세한 내용은 XQuery의 형변환 규칙을 참조하십시오.

두 연산의 숫자 기본 유형이 다르면 숫자 유형 승격이 발생합니다. 예를 들어 xs:doublexs:decimal을 추가하면 먼저 decimal 값을 double로 바꿉니다. 그런 다음 추가 작업을 수행하여 double 값을 만듭니다.

형식화되지 않은 원자 값은 다른 피연산자의 숫자 기본 유형으로 형변환되거나 다른 피연산자도 형식화되지 않은 경우 xs:double로 형변환됩니다.

구현 시 제한 사항

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

  • 산술 연산자의 인수는 숫자 유형 또는 untypedAtomic이어야 합니다.
  • xs:integer 값에 대한 연산은 xs:integer 대신 xs:decimal 유형의 값을 생성합니다.