我有一列百分比,表示如下:
----------
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值。如何删除%字符并转换为数字,而忽略空白和非数字字符?
答案 0 :(得分:1)
这是一种方法:
update t
set usertxt2 = cast(try_cast(replace(usertxt2, '%', '') as decimal(5, 2)) as varchar(255)) + '%'
这使用try_cast()
来检测有效数字。