字面量

使用如下形式来表示一个类型为DECIMAL的值的字面量:

DECIMAL 'xxxx.yyyyy'

DECIMAL 字面量的precision和其字面数字个数相同(包括前导的0),而scale和其小数位相同(包括后置的 0),示例如下:

字面量 数据类型
DECIMAL ‘0’ DECIMAL(1)
DECIMAL ‘12345’ DECIMAL(5)
DECIMAL ‘0000012345.1234500000’ DECIMAL(20, 10)

运算符

  • 算术运算符

    假设有如下两个DECIMAL类型的变量 x, y:

    • x : DECIMAL(xp,xs)
    • y : DECIMAL(yp,ps)

    两个变量在参与算术运算时,遵循如下规则:

    • x + yx - y

      • precision = min(38, 1 + min(xs, ys) + min(xp-xs, yp-ys))
      • scale = max(xs, ys)
    • x * y

      • precision = min(38, xp + yp)
      • scale = xs + ys
    • x / y

      • precision = min(38, xp + ys + max(0, ys-xs))
      • scale = max(xs, ys)
    • x % y

      • precision = min(xp - xs, yp - ys) + max(xs, bs)
      • scale = max(xs, ys)
  • 比较运算符

    DECIMAL可以使用标准比较运算符和BETWEEN进行比较运算。

  • 一元运算符

    DECIMAL可以使用一元运算符-取负数。