如何在SQL Server中修剪尾随0

时间:2017-03-02 06:05:43

标签: sql sql-server

我需要从诸如0.50,0.40等数字中调整尾随'0'。任何建议?无法在SQL Server中使用TRIM函数。

我不想使用convert(decimal(10, 1), number),因为这会影响ex等值为'0.23'。

2 个答案:

答案 0 :(得分:0)

这是一种通用方法,应该从任何数字中删除所有尾随零。首先,我们使用REVERSE()REPLACE()CHARINDEX()将数字转换为文本,并计算有多少尾随零。然后,我们使用LEFT()来取整个数字文本减去发现的尾数为零的数量。

SELECT LEFT(CAST(col AS VARCHAR),
            LEN(CAST(col AS VARCHAR)) -
            CHARINDEX(LEFT(REPLACE(REVERSE(CAST(col AS VARCHAR)), '0', ''), 1),
                      REVERSE(CAST(col AS VARCHAR))) +
            CHARINDEX(LEFT(REPLACE(REVERSE(CAST(col AS VARCHAR)), '0', ''), 1),
                      REPLACE(REVERSE(CAST(col AS VARCHAR)), '0', ''))) AS new_col
FROM yourTable

在这里演示:

Rextester

答案 1 :(得分:0)

你可以试试这个剧本:

select convert (DOUBLE PRECISION , column_name) from table_name