Sql server 在SQL中将NaN值转换为NULL,或将NaN值转换为0
我在注册表中有包含NaN值的值(它们来自MATLAB)。在SQL中,如何将它们转换为NULL,或者最好是0?如果已将它们导入SQL Server表中Sql server 在SQL中将NaN值转换为NULL,或将NaN值转换为0,sql-server,Sql Server,我在注册表中有包含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 =
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, ...
如果IsNumeric(column)=0,那么0 ELSE column的情况如何
SELECT NULLIF('NaN', ColumnName)
范例
DECLARE @d VARCHAR(3) ='NaN'
SELECT NULLIF('NaN', @d)
为了0
当IsNumeric(column)=0,然后0,否则column END运行此命令时,它在
Select语句中的外观如何:-)Select IsNumeric('2d4')IsNumeric仍然可以满足其目的,尽管它通常不适用。
DECLARE @d VARCHAR(7) ='NaN'
SELECT CASE WHEN @d = 'NaN' THEN '0' ELSE @d END