当我运行脚本时:

select
    cast(s as float)
from
    t
where
    ISNUMERIC(s) = 1

它因错误而停止:



为什么会发生?我正在尝试转换为仅浮点数。如何找出导致错误的行?

最佳答案

isnumeric 函数认为一切都是数字。改用“try_convert”。如果该值无法转换为目标数据类型,则返回 null。

select convert(float, '1,0,1')
where try_convert(float, '1,0,1') is not null

如果您使用的是旧版本的 SQL,我会编写自己的函数。

关于sql - 将数据类型 varchar 转换为 float isnumeric = 1 时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41633288/

10-13 07:53
查看更多