我在包含NaN值的注册表中有值(它们来自MATLAB)。如何在SQL中将它们转换为NULL,或者最好转换为0?

最佳答案

如果已将它们导入到SQL Server表中

update tbl
set theColumn = NULL
WHERE theColumn = 'NaN'

如果列值是字符串“NaN”,则会将列值转换为NULL
为了使该列包含“NaN”,它必须为varchar,因此,如果您希望使用0,则该字符串将为“0”
update tbl
set theColumn = '0'
WHERE theColumn = 'NaN'

在select语句中,可以使用以下任一方法
SELECT NULLIF(theColumn, 'NaN') as NullifiedTheColumn, ...
SELECT CASE theColumn when 'NaN' then '0' else theColumn end as ZeroedTheColumn, ...

09-25 18:37