更新百分比以在SQL中设置小数位

时间:2018-07-26 17:18:44

标签: sql sql-server string type-conversion

我有一列百分比,表示如下:

----------
usertxt2
----------
25%
26
NULL
a%

23.00%
23.6578

我需要将所有数字转换为xx.xx%的固定格式,以便该列显示为

----------
usertxt2
----------
25.00%
26.00%
NULL
NULL
NULL
23.00%
23.66%

到目前为止,我已经尝试过先删除LEFT()函数以删除%字符,然后使用CAST()函数并使用CASE WHEN函数将其转换为十进制,以忽略空白,非数字字符和NULL值。如何删除%字符并转换为数字,而忽略空白和非数字字符?

1 个答案:

答案 0 :(得分:1)

这是一种方法:

update t
    set usertxt2 = cast(try_cast(replace(usertxt2, '%', '') as decimal(5, 2)) as varchar(255)) + '%'

这使用try_cast()来检测有效数字。