- 类别:
半结构化和结构化数据函数 (类型转换)
AS_DECIMAL、AS_NUMBER¶
将 VARIANT 值转换为定点 NUMBER 值,可选择精度和比例。此函数不转换浮点值。
AS_DECIMAL 与 AS_NUMBER 同义。
DECIMAL 数据类型与 NUMBER 数据类型同义。
语法¶
AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )
AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
实参¶
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));
在查询中使用 AS_NUMBER 函数将 VARIANT 值转换为 NUMBER 值:
SELECT AS_NUMBER(number1, 6, 3) number_value
FROM as_number_example;
+--------------+
| NUMBER_VALUE |
|--------------|
| 2.340 |
+--------------+