Escala na aritmética decimal Precisãonas expressões de aritmética decimal Escalana 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)