如何计算小数位后的位数?

时间:2015-08-03 22:52:07

标签: mysql sql oracle

我是编写查询的新手。我需要一个查询来说明小数位后的位数。

例如:

1001.00 = 0 digits after decimal
1001.01 = 2 digits after decimal
1001.010 = 2 digits after decimal

我该怎么做?

3 个答案:

答案 0 :(得分:2)

ORACLE解决方案

  

这可以通过多种方式实现,其中一种在下面,

SELECT
length((1001.00) - trunc(1001.00)) - 1 as digits_after_decimal
FROM
dual;
SELECT
length((1001.01) - trunc(1001.01)) - 1 as digits_after_decimal
FROM
dual;    
 SELECT
length((1001.010) - trunc(1001.010)) - 1 as digits_after_decimal
FROM
dual;

答案 1 :(得分:0)

表示oracle简单示例:

select length(substr(to_char(999999.564654645),instr(to_char(999999.564654645), ',')+1, 16)) || ' digits after decimal' from dual

答案 2 :(得分:0)

此解决方案在MySQL中对我有效,并且对任何数字字段均适用:

SELECT char_length(field) - char_length(floor(field)) - 1 as digits_after_decimal;