sql - 在MSSQL Server中将nvarchar转换为数值

标签 sql sql-server

我有一个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

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

Error converting data type nvarchar to float.



有人可以帮忙吗?

最佳答案

您的数据似乎具有无效的数值。使用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

关于sql - 在MSSQL Server中将nvarchar转换为数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806702/

相关文章:

sql-server - 无法将显式值插入时间戳列

c# - 无法从 RHEL 7 上的 .Net core 应用程序连接到 SQL Server 数据库

sql-server - SSIS条件分割多个真实路径

c# - 如何使用 C# 从 SQL Server 获取图像数据、写入文件、将文件保存到磁盘

mysql - 需要正确查询以根据条件获取唯一数据计数

sql - 这不会返回任何内容。为什么?

sql - 如何使用sql server获取ISOweek以及全年每周的开始和结束日期

c# - 如何使用sql server 2005通过数据库发送邮件?

mysql - 使用 SELECT 语句作为要插入的值

sql - 每个月的 CHAR/VARCHAR2 数据类型的范围分区