Как извлечь первое число после десятичной точки в значении - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть столбец возраста, который вычисляет возраст каждого члена в моем отчете. Вывод представляет собой целое число, за которым следуют десятичная точка и цифры.Я хотел бы получить первое число только сразу после десятичной точки.

Я попробовал trunc, но он дает мне все до десятичной точки, а затем число, которое я хочу после. Затем я попытался обрезать вызов с запятойи это не работает.

trunc (age, ',')

Пример -

age 15,7

ожидаемый результат 7

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Здесь математический ответ

  • берут десятичную часть, сжимая всю ее часть (усечение).

  • умножить на 10 и взять целую часть

.

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

       DP1
----------
         7
0 голосов
/ 18 февраля 2019

Умножьте на 10, обрежьте его и возьмите остаток от деления на 10.

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

Вывод:

DP
--
 7
0 голосов
/ 18 февраля 2019

попробуй как показано ниже

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