当我运行脚本时:
select cast(s as float) from t where ISNUMERIC(s) = 1
它会因错误而停止:
将数据类型varchar转换为float时出错.
为什么会这样?我试图转换为只浮数数字.我如何找出导致错误的行?
isnumeric函数认为几乎所有东西都是数字.请改用"try_convert".如果值无法转换为目标数据类型,则返回null.
select convert(float, '1,0,1') where try_convert(float, '1,0,1') is not null
如果您使用的是旧版本的SQL,我会编写自己的函数.