SQL - Как получить только цифры после десятичной дроби ?

Используйте условие, подобное этому

idx>0 ? 'mizi' : 'pizi'

Переход 'Pizi' применяется для первого элемента. другие имеют «Мизи».

<transition :name="idx>0 ? 'mizi' : 'pizi'" mode="out-in">
    <li :key="msg.id" class="bigdiv">{{msg.content}} {{idx}}</li>
</transition>

и

.pizi-enter-active{
//DIFFERENT ANIMATION 
}

.pizi-leave-active, .mizi-leave-active{
//SAME ANIMATION FOR ALL ELEMENTS
}
44
задан ThinkingStiff 18 January 2012 в 19:18
поделиться

6 ответов

в одну сторону, работает также для отрицательных значений

declare @1 decimal(4,3)
select @1 = 2.938

select PARSENAME(@1,1)
56
ответ дан 26 November 2019 в 21:32
поделиться

Я имел ту же проблему и решил с оператором '%':

select 12.54 % 1;
0
ответ дан 26 November 2019 в 21:32
поделиться

Вы можете использовать FLOOR :

select x, ABS(x) - FLOOR(ABS(x))
from (
    select 2.938 as x
) a

Вывод:

x                                       
-------- ----------
2.938    0.938

Или вы можете использовать SUBSTRING :

select x, SUBSTRING(cast(x as varchar(max)), charindex(cast(x as varchar(max)), '.') + 3, len(cast(x as varchar(max))))
from (
    select 2.938 as x
) a
18
ответ дан 26 November 2019 в 21:32
поделиться

Обычный прием (который немного отличается по синтаксису):

x - floor(x)

Это дробная часть. Чтобы преобразовать в целое число, отмасштабируйте его.

(x - floor(x)) * 1000
5
ответ дан 26 November 2019 в 21:32
поделиться

попробуйте следующее:

SELECT (num % 1)
126
ответ дан 26 November 2019 в 21:32
поделиться

Если вы знаете, что вам нужны значения с точностью до тысячных долей, разложите, это

SELECT (num - FLOOR(num)) * 1000 FROM table...;
0
ответ дан 26 November 2019 в 21:32
поделиться