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:
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:
ls + rs
31 - lp + ls - rs
max(max(ls, rs), 4)
max(ls, rs)
Por exemplo, a escala do tipo de dado resultante da expressão a seguir é 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:
lp + rp
2 * (p - s) + s
lp - ls + rp + max(ls + rp - rs + 1, 4)
max(lp - ls, rp - rs) + 1 + max(ls, rs)