Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新百分比以设置SQL中的小数位数_Sql_Sql Server_String_Type Conversion - Fatal编程技术网

更新百分比以设置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
中会带来麻烦。