Escala na aritm??tica decimal

As instru????es SQL podem envolver express??es aritm??ticas que utilizam tipos de dado decimais com precis??o (o n??mero total de d??gitos, tanto ?? esquerda quanto ?? direita do ponto decimal) e escala (o n??mero de d??gitos da parte fracion??ria) diferentes. A precis??o e a escala do tipo decimal resultante dependem da precis??o e da escala dos operandos.

Dada uma express??o aritm??tica envolvendo dois operandos decimais:
  • lp significa a precis??o do operando ?? esquerda
  • rp significa a precis??o do operando ?? direita
  • ls significa a escala do operando ?? esquerda
  • rs significa a escala do operando ?? direita
S??o utilizadas as seguintes f??rmula para determinar a escala do tipo de dado resultante para os seguintes tipos de express??es aritm??ticas:
  • multiplica????o

    ls + rs

  • divis??o

    31 - lp + ls - rs

  • AVG()

    max(max(ls, rs), 4)

  • todas as outras

    max(ls, rs)

Por exemplo, a escala do tipo de dado resultante da express??o a seguir ?? 27:
11.0/1111.33
// 31 - 3 + 1 - 2 = 27 
S??o utilizadas as seguintes f??rmula para determinar a precis??o do tipo de dado resultante para os seguintes tipos de express??es aritm??ticas:
  • multiplica????o

    lp + rp

  • adi????o

    2 * (p - s) + s

  • divis??o

    lp - ls + rp + max(ls + rp - rs + 1, 4)

  • todas as outras

    max(lp - ls, rp - rs) + 1 + max(ls, rs)

Conceitos relacionados
Vis??o geral dos tipos num??ricos
Refer??ncias relacionadas
Promo????o de tipo num??rico nas express??es
Armazenamento de valores de um tipo de dado num??rico em colunas de outro tipo de dado num??rico