Sql 计算美元到百万返回整数
我试图通过除法将美元金额(以DB为十进制(15,0)非空)计算为百万,但结果我只得到整数金额 预期结果:Sql 计算美元到百万返回整数,sql,db2,Sql,Db2,我试图通过除法将美元金额(以DB为十进制(15,0)非空)计算为百万,但结果我只得到整数金额 预期结果: AMOUNT AMOUNT IN MIL 123000 0.1 1123000 1.123 我有这个,但它只返回0,1 SELECT ... AMOUNT / 1000000 AS "AMOUNT IN MIL" FROM .... 在计算之前,尝试将数据类型更改为6个小数位数: cast(amount as decimal(28,6)) / 1000
AMOUNT AMOUNT IN MIL
123000 0.1
1123000 1.123
我有这个,但它只返回0,1
SELECT ... AMOUNT / 1000000 AS "AMOUNT IN MIL" FROM ....
在计算之前,尝试将数据类型更改为6个小数位数:
cast(amount as decimal(28,6)) / 1000000
你应该熟悉这种算术运算的规则。请参阅本文 简而言之:
INT/INT=INT
DEC(p,s)/DEC(p',s')=DEC(31,31-p+s-s')) 因此,如果您想在INT/INT上得到DEC(31,X),您可以显式地将一个分子强制转换为DEC(31-X)。
在您的情况下(X=6):
在计算前尝试更改数据类型:
cast(金额为十进制(28,6))/1000000
Yes!就这样。请输入答案。非常感谢。
> db2 describe dec(1, 25)/1000000
Column Information
Number of columns: 1
SQL type Type length Column name Name length
-------------------- ----------- ------------------------------ -----------
484 DECIMAL 31, 6 1 1