类别:

半结构化和结构化数据函数 (类型转换)

AS_DECIMAL、AS_NUMBER

VARIANT 值转换为定点 NUMBER 值,可选择精度和比例。此函数不转换浮点值。

AS_DECIMAL 与 AS_NUMBER 同义。

DECIMAL 数据类型与 NUMBER 数据类型同义。

另请参阅:

AS_<object_type>AS_DOUBLE、AS_REALAS_INTEGER

语法

AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )

AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Copy

实参

variant_expr

VARIANT 类型值计算的表达式。

precision

要存储的十进制数的有效位数。

默认为 38

scale

小数点后的有效位数。

默认为 0

返回

该函数返回 NUMBER 类型的值或 NULL:

  • 如果 variant_expr 实参中的值类型为 DECIMAL 或 NUMBER,则该函数返回 NUMBER 类型的值。

  • 如果 variant_expr 实参中的值类型与输出值的类型不匹配,则函数返回 NULL。

  • 如果 variant_expr 实参为 NULL,则该函数返回 NULL。

使用说明

减少小数位数时,此函数会对结果进行四舍五入,这可能会导致超出范围的误差。

示例

创建一个表并将数据加载到其中:

CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);

INSERT INTO as_number_example (number1)
  SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Copy

在查询中使用 AS_NUMBER 函数将 VARIANT 值转换为 NUMBER 值:

SELECT AS_NUMBER(number1, 6, 3) number_value
  FROM as_number_example;
Copy
+--------------+
| NUMBER_VALUE |
|--------------|
|        2.340 |
+--------------+
语言: 中文