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