更新百分比以设置SQL中的小数位数
我有一列百分比,表示如下:更新百分比以设置SQL中的小数位数,sql,sql-server,string,type-conversion,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函数忽略空白、非数
----------
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函数忽略空白、非数字字符和空值。如何删除%字符并转换为数字而忽略空白字符和非数字字符? 这里有一种方法:
update t
set usertxt2 = cast(try_cast(replace(usertxt2, '%', '') as decimal(5, 2)) as varchar(255)) + '%'
这使用
try\u cast()
来检测有效的数字。最好将数字存储在数字列中。将它们存储在varchar
中会带来麻烦。