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

问题描述 投票:2回答:3

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

我尝试过截断但是它给了我十进制之前的所有内容,然后是我想要的数字。然后我尝试使用逗号调出它并且它不起作用。

TRUNC(年龄, '')

示例 -

年龄15.7岁

预期产出7

sql oracle numbers decimal truncate
3个回答
1
投票

尝试如下

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

2
投票

这里的数学答案

  • 通过susbriacting整个部分(截断)取小数部分。
  • 乘以10并占据整个部分

.

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

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

1
投票

乘以10,将其截断并将除法的余数除以10。

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

输出:

DP
--
 7
© www.soinside.com 2019 - 2024. All rights reserved.