在 MSSQL Server 中将 nvarchar 转换为数字

新手上路,请多包涵

我有一个 nvarchar 列,其中包含一个条目列表,例如(包括 NULL)-

 -1.00000
0.000000
0.010000
0.100000
0.500000
00000000
1.000000
1.500000
10.00000
10.50000
100.0000
1000.000
1001.000
1006.000
NULL
NULL

我想将其转换为数字字段,以便我可以使用此字段进行一些计算。但是,我收到以下错误消息-

将数据类型 nvarchar 转换为浮点数时出错。

有人可以帮忙吗?

原文由 HM8689 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您的数据的值似乎不是有效的数值。使用 try_convert()

 select try_convert(numeric(38, 12), col)

如果转换失败,这将返回 NULL

您可以通过执行以下操作找到转换失败的值:

 select col
from t
where try_convert(numeric(38, 12), col) is null and col is not null;

您需要使用 try_convert() 将列作为数字引用。在 select 中转换仅适用于 select

原文由 Gordon Linoff 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以尝试 SQLServer 中的转换功能:

 select Convert(float, "column_name") from TABLE

空字段返回为 0。

原文由 esaintpi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进