Как извлечь дробные цифры двойного - PullRequest
2 голосов
/ 21 апреля 2019

Мне нужно вывести дробную часть double в sql, но без «0». Например: номер: 5.67 int: 5 факт: 67

Ответы [ 3 ]

1 голос
/ 21 апреля 2019

В большинстве баз данных вы можете использовать что-то вроде этого:

select cast((x - floor(x)) * 100 as int)

В SQL Server у вас есть другие варианты. Например, чтобы получить дробную часть, вы можете использовать %:

select (x % 1)

Чтобы получить две цифры:

select floor(100 * (x % 1)) -- or perhaps round()

или

select (x * 100) % 100
0 голосов
/ 22 апреля 2019
SELECT 5.67 AS Doubles, CAST(5.67  AS INT) AS Fractional_Only, 
PARSENAME(5.67,1) AS DECIMAL_ONLY  
0 голосов
/ 21 апреля 2019

это будет работать в oracle:

select substr(to_char(5.67),instr(to_char(5.67),'.')+1) from dual;

check http://sqlfiddle.com/#!4/e2ac5e/1074

для mssql:

select substring(CONVERT(varchar, 25.65),CHARINDEX('.', CONVERT(varchar, 25.65))+1,5);

http://sqlfiddle.com/#!18/9eecb/41866

checkпоследний:

select substring(CONVERT(varchar, (15+15)/2.0),
                 CHARINDEX('.', CONVERT(varchar, (15+15)/2.0))+1,1);

http://sqlfiddle.com/#!18/9eecb/41875

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...