我有一个age列,用于计算报告中每个成员的年龄。输出是一个整数,后跟一个小数点和数字。我只希望小数点后的第一个数字。
我尝试了trunc,但是它给了我小数点前的所有内容,然后是我想要的数字。然后我尝试用逗号呼出来进行trunc,但不起作用。
trunc(age,',')
示例-
年龄15.7
预期的输出7
答案 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