Как округлить число в SQL Server - PullRequest
3 голосов
/ 22 сентября 2010

У меня есть сценарий, в котором мне нужно округлить, а затем удалить лишние нули из чисел.Поэтому, если у меня есть округленное число (12.456400000), я хочу удалить нули.Есть ли функция, которую я могу использовать, чтобы удалить эти цифры?Похоже, что функция округления оставляет нули на месте?

Как всегда, очень ценю ввод.

Ответы [ 3 ]

1 голос
/ 22 сентября 2010

Создайте пользовательскую функцию ( MSDN link ) и сверните код .:

CREATE FUNCTION [dbo].[RemoveTrailingZeros] 
(
    @Value decimal
)
RETURNS decimal
AS
BEGIN
    RETURN replace(rtrim(replace(@Value, '0', ' ')), ' ', '0')
END

Вы бы использовали его следующим образом:

SELECT dbo.RemoveTrailingZeros(12.456400000)
1 голос
/ 22 сентября 2010

Конечно, попробуйте это:

select replace(rtrim(replace('12.456400000', '0', ' ')), ' ', '0')
0 голосов
/ 28 сентября 2010

Предположительно, вы знаете, сколько десятичных разрядов вы округляете, поэтому вы можете привести к десятичному типу данных с правильным числом DP вне ROUND

CAST(ROUND(Field, 4) AS DECIMAL(12, 4))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...