Snowflake中删除含NaN值的记录失败,寻求正确解决方法
解决Snowflake表中删除NaN值行的问题
你之前尝试的所有删除语句都是把NaN当成字符串'nan'来匹配,但在Snowflake里,NaN(非数值)是特殊的浮点类型值,不是字符串,所以用等于字符串的条件根本抓不到这些行。
正确的删除写法
在Snowflake里识别NaN得用专门的函数,两种常用方法:
1. 精准匹配NaN值
用IS_NAN()函数专门判断字段是否为NaN:
DELETE FROM your_table_name WHERE IS_NAN(value);
2. 同时匹配NaN和无穷大值
如果你的字段里可能还有无穷大(Infinity)这类特殊值,用IS_INF_OR_NAN()可以一起处理:
DELETE FROM your_table_name WHERE IS_INF_OR_NAN(value);
特殊情况排查
要是你的value列是字符串类型,存的是'nan'字符串(不是真正的NaN数值),那之前的语句没生效可能是字符串有隐藏空格或大小写问题,试试这个:
DELETE FROM your_table_name WHERE TRIM(UPPER(value)) = 'NAN';
但从你的示例数据来看,更大概率是真正的NaN数值,优先用前面两个函数的方法。
内容的提问来源于stack exchange,提问作者Logan27
相关产品推荐
相关产品推荐

