我需要从诸如0.50,0.40等数字中调整尾随'0'。任何建议?无法在SQL Server中使用TRIM
函数。
我不想使用convert(decimal(10, 1), number)
,因为这会影响ex等值为'0.23'。
答案 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
在这里演示:
答案 1 :(得分:0)
你可以试试这个剧本:
select convert (DOUBLE PRECISION , column_name) from table_name