将SQL字段数据类型varchar更改为已存储数据的浮点型

将SQL字段数据类型varchar更改为已存储数据的浮点型,sql,sql-server,alter,Sql,Sql Server,Alter,我有一个导入的数据库,其中包含大量的浮点字段。 当我导入它时,所有的float字段都转换为string,我需要将它转换回来 我试图更改ALTERTABLE来更改数据类型,但我不断得到错误(即使该行为空或null) 编辑:服务器当前已关闭,因此我目前无法获取错误消息。我的DBMS是SQL Server。您可以先在表中添加一个数据类型为float的新字段,然后使用convert函数进行更新: UPDATE @tbl SET num = convert(FLOAT, text) SELECT *

我有一个导入的数据库,其中包含大量的浮点字段。 当我导入它时,所有的float字段都转换为string,我需要将它转换回来

我试图更改ALTERTABLE来更改数据类型,但我不断得到错误(即使该行为空或null)


编辑:服务器当前已关闭,因此我目前无法获取错误消息。我的DBMS是SQL Server。

您可以先在表中添加一个数据类型为float的新字段,然后使用convert函数进行更新:

UPDATE @tbl
SET
  num = convert(FLOAT, text)

SELECT *
FROM
  @tbl

如果所有数据都是真正的数字类型,则可以这样做。 可能有一些数据是空的——这里没有问题。 可能有一些数据是空的((“”),但不是空的——问题就在于此。 首先,进行select查询以检索所有空白数据 说, 从col=''的表1中选择* 现在用null更新这些行 更新表1设置col=null,其中col=''

在此之后,我认为您可以轻松地将其转换为float


参考资料:

“但我一直出错”-什么错误?您使用的是什么DBMS?如果他在转换列时出错,为什么创建新列时不会出错?Op可能有错误数据。