我在包含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, ...