簡體   English   中英

db2:如何從數字列中刪除小數?

[英]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';

正如另一個答案所建議的那樣,將其轉換為整數將起作用。

但是,請記住,

  1. 您將截斷任何十進制值。
  2. 您正在從一種類型轉換為另一種類型。

您可以通過在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM