Sql-запрос об ограничении десятичной дроби

#mysql #sql

Вопрос:

Я должен рассматривать десятичную дробь только до первого десятичного знака. например, 24.816,, 24.8,, 24.83 Я хочу сравнить все три значения только путем определения 24.8(это первая десятичная точка всех трех значений). Как я могу ограничить свои значения до первого знака после запятой.

Комментарии:

1. Значит, ты не хочешь округляться? Вы хотите рассматривать 24.7999 как 24.7?

2. Да, это так

Ответ №1:

Вам нужна функция TRUNCATE() :
TRUNCATE(24.816, 1) , TRUNCATE(24.8, 1) и TRUNCATE(24.83, 1) все вернется 24.8 .

Смотрите демонстрацию.

2 — й аргумент TRUNCATE() (если положительный) — это количество знаков после запятой, которое вы хотите сохранить.

Комментарии:

1. Есть ли другой способ, кроме функции trunc?

2. @AmanThakur почему? В чем проблема с этой функцией?

3. Я просто пытался использовать это без использования функции

4. @AmanThakur такие функции, как TRUNCATE (), избавляют вас от необходимости выполнять сложные математические вычисления.

5. Не можем ли мы сделать что-то вроде чего-то с помощью подстроки?

Ответ №2:

Если вы не хотите использовать функцию truncate() :

 select cast((24.79-(24.79%.1)) as decimal (18,1))
 

он возвращает 24,7

Комментарии:

1. Если это что-то вроде 24.87642…тогда?

2. Просто замените 24.79 на 24.87642.., он вернет 24.8. Вы можете попробовать здесь : dbfiddle.uk/…