Sql server 将数据类型varchar转换为数字时出错
更新表集测试=转换(varchar(53),转换(电话号码为十进制))如果电话号码有任何字母或符号字符,转换为十进制时将失败:Sql server 将数据类型varchar转换为数字时出错,sql-server,Sql Server,更新表集测试=转换(varchar(53),转换(电话号码为十进制))如果电话号码有任何字母或符号字符,转换为十进制时将失败: Update table set Test = Convert(varchar(53), Cast(Phone_Number as Decimal)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 您的问题非常模糊,但您可以尝试: Update YourTable
Update table set Test = Convert(varchar(53), Cast(Phone_Number as Decimal))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
您的问题非常模糊,但您可以尝试:
Update YourTable
SET Test=CASE
WHEN ISNUMERIC(Phone_Number)=1 THEN Convert(varchar(53), Cast(Phone_Number as Decimal)) --this is your code unchanged
ELSE Phone_Number
END
...
测试和电话号码是什么数据类型?如果更新针对表中的每一行(示例代码没有WHERE),那么如果只有一个
Phone\u Number
具有坏字符,则整个更新将失败。运行从您的表中选择*,其中ISNUMERIC(Phone_Number)=0
查找所有“坏”行。