[英]db2: how to remove the decimal from number column?
一个非常简单的查询
select avg(price) from cars where type = 'electric';
结果是
1
---------------------------------
45000,00000000000
我想删除 ,00000000000 以获得
1
---------------------------------
45000
我尝试过投射和圆形但没有成功。 我在 Db2 上
这个不错的 ltrim 适用于所有类型的汽车
select replace(ltrim(replace(price,'0',' ')),' ','0') from cars;
但是使用 with avg 返回带有 00000 的字符串
select replace(ltrim(replace(avg(price),'0',' ')),' ','0') from cars where type = 'electric';
结果是..
45000.00000000000
:( 只有 , 被改变了。
cast
荷兰国际集团这个值应该只是工作:
select cast(avg(price) as int) as avg_int
from cars
where type = 'electric';
正如另一个答案所建议的那样,将其转换为整数将起作用。
但是,请记住,
您可以通过在ROUND()
之后进行转换来解决 #1
select int(round(avg(price),0)) as avg_int
from cars
where type = 'electric'
您可以通过使用DECIMAL()
或ZONED()
来解决 #2,根据原始列类型的比例为零。
select dec(avg(price),10,0) as avg_dec
from cars
where type = 'electric'
当然ROUND()
也可以与DECIMAL()
或ZONED()
......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.