我在包含NaN值(它们来自MATLAB)的注册表中有值。我如何将它们转换为NULL,或者最好是0,在SQL中?在SQL中将NaN值转换为NULL或将NaN转换为0
2
A
回答
3
如果你它们导入到SQL Server表
update tbl
set theColumn = NULL
WHERE theColumn = 'NaN'
,如果它们是字符串“男” 对于列包含'南的这列的值转换为NULL,它必须是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, ...
2
1
SELECT NULLIF('NaN', ColumnName)
例如
DECLARE @d VARCHAR(3) ='NaN'
SELECT NULLIF('NaN', @d)
为0
DECLARE @d VARCHAR(7) ='NaN'
SELECT CASE WHEN @d = 'NaN' THEN '0' ELSE @d END
和转换到零?? – cMinor 2011-03-08 20:17:06