# 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)

Tópico pai: Tipos numéricos
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