数智融合计算服务 DATAARTSFABRIC-数值类型:任意精度型
任意精度型
使用Numeric/Decimal进行列定义时,建议指定该列的精度p(总位数)以及范围s(小数位数)。
如果数值的精度或者范围大于列的数据类型所声明的精度和范围,那么系统将会试图对这个值进行四舍五入。如果不能对数值进行四舍五入的处理来满足数据类型的限制,则会报错。
名称 |
描述 |
存储空间 |
范围 |
---|---|---|---|
NUMERIC[(p[,s])], DECIMAL[(p[,s])] |
精度p取值范围为[1,1000],标度s取值范围为[0,p]。 |
用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。 |
未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。 |
示例:
创建带有DECIMAL数值类型的表。
1
|
CREATE EXTERNAL TABLE decimal_type_t1 (DT_COL1 DECIMAL(10,4)) STORE AS orc; |
插入数据。
1 2 |
INSERT INTO decimal_type_t1 VALUES(123456.122331); INSERT INTO decimal_type_t1 VALUES(123456.452399); |
查看数据。
1 2 3 4 5 6 |
SELECT * FROM decimal_type_t1; dt_col1 ------------- 123456.1223 123456.4524 (2 rows) |