如何提取值中小数点后的第一个数字

时间:2019-02-18 16:37:30

标签: sql oracle numbers decimal truncate

我有一个age列,用于计算报告中每个成员的年龄。输出是一个整数,后跟一个小数点和数字。我只希望小数点后的第一个数字。

我尝试了trunc,但是它给了我小数点前的所有内容,然后是我想要的数字。然后我尝试用逗号呼出来进行trunc,但不起作用。

trunc(age,',')

示例-

年龄15.7

预期的输出7

3 个答案:

答案 0 :(得分:2)

这是数学答案

  • 通过对整部分(trunc)进行整写来取小数部分。

  • 乘以10,然后取整部分

with age as (select 15.7231 age from dual)
select trunc(10*(age-trunc(age))) dp1  from age

       DP1
----------
         7

答案 1 :(得分:1)

尝试如下

select substr(to_char(15.7,'9999.0'),-1,1) as col from dual
 it will return 7

答案 2 :(得分:1)

乘以10,将其截断,然后除以10的余数。

with age as (select 15.7231 age from dual)
select mod(trunc(10*age), 10) dp from age

输出:

DP
--
 7