将varchar(max)转换为int或float时出错

时间:2013-01-08 18:53:28

标签: sql tsql sql-server-2005 casting

我有一个表格,将不同的信息存储到值列varchar(max)

我需要能够从此表中提取一些信息,将其转换为整数并对数字求平均值。我试图转换时遇到了一个问题。

这不起作用:

select cast(value as float) as value
from table

有谁能告诉我如何正确转换它?

1 个答案:

答案 0 :(得分:5)

据推测,问题是某些值不是数字格式。试试这个:

select (case when isnumeric(value) = 1 then cast(value as float) end)
from table

这会将所有数字转换为float,并将NULL放在其余字段中。

如果要查看导致问题的值,请使用:

select value
from table
where isnumeric(value) = 0 and value is not null