Функции форматирования чисел в sql - PullRequest
0 голосов
/ 30 июня 2009

Существует три столбца стоимости: member, single_cost и он хочет написать SQL, чтобы классифицировать значение, которое делит стоимость по участнику на single_cost. Я работаю, чтобы отключить его, когда появилась десятичная дробь, и я могу войти, но я говорю, и будет ли знание метода преподавать значение в этом случае? Каждый столбец имеет тип int. Заранее спасибо.

ех Во время стоимости = 15000, участник = 7, я становлюсь single_cost = 2142,8, но регистрируюсь в базе данных на 2143.

Ответы [ 2 ]

1 голос
/ 30 июня 2009

Если я правильно понимаю, вы хотите, чтобы значение с плавающей точкой сохранялось в вашей базе данных. Чтобы это произошло, вам нужно привести результат деления следующим образом: CAST(X/Y AS FLOAT), где X и Y и имена ваших полей.

Обратите внимание, что тип данных single_cost также должен быть FLOAT.

В зависимости от имеющейся у вас базы данных, другой способ добиться этого - умножить числитель или знаменатель на «1,0».

Например:

UPDATE Table
SET single_cost = (1.0 * cost) / participant

Предыдущее решение было бы:

UPDATE Table
SET single_cost = CAST(cost AS FLOAT) / participant

Надеюсь, это поможет.

0 голосов
/ 30 июня 2009

Вы могли бы сделать что-то вроде этого (при условии t-sql)

select single_cost = round(cast(cost as float) / cast(participant as float),0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...