我以
的形式创建了表格create table test ( x decimal(5,2))
然后我尝试插入一个值
insert into test values ( cast( 1000.2 as decimal(5,2) ) );
insert into test values ( cast('2000.3' as decimal(5,2) ) );
insert into test values ( cast('3000,4' as decimal(5,2) ) );
,但最后select * from test;
返回3x NULL值。
我做错了什么?我不敢相信上述任何声明都不起作用。
我在最新的Cloudera quickstart VM上使用了impala 。
答案 0 :(得分:1)
精度是数字中的位数。小数位数是数字中小数点右边的位数。例如,数字123.45的精度为5,小数位数为2
select cast(1000.2 as decimal(5,1)) as a,
cast(1000.2 as decimal(5,2)) as b,
cast(1000.2 as decimal(6,2)) as c
会给你
a 1000.2
b NULL
c 1000.2