如何在 aws redshift 中删除 NaN
Posted
技术标签:
【中文标题】如何在 aws redshift 中删除 NaN【英文标题】:How to remove NaNs in aws redshift 【发布时间】:2016-04-13 21:40:03 【问题描述】:我正在尝试从 aws redshift 中的列中删除 NaN(基于 PostgreSQL 8.0.2)。
我想使用更新语句来执行此操作,例如:
UPDATE table001
SET variable_a = NULL
FROM table001
WHERE variable_a = 'NaN'
但找不到一种方法来对我需要的行进行子集化。我也试过 WHERE variable_a = 'NaN'::float
和 WHERE variable_a = FLOAT8 'NaN'
但在所有情况下 where 子句都不会带回任何行
(variable_a 的 data_type 为 float8)
【问题讨论】:
只是好奇。你能查一下:SELECT * FROM table001 WHERE NOT (variable_1 <> 'NaN')
吗?如果列可以为空,可能还有一些NULL
处理。
感谢您的评论,我试过了,但它带回了零行
【参考方案1】:
NaN
不等于 RedShift 列中的另一个 NaN
(与 PostgreSQL 不同)。
你应该检查它的文本表示:
UPDATE table001
SET variable_a = NULL
WHERE variable_a::TEXT = 'nan' -- mind the case
【讨论】:
在 where 子句中使用WHERE variable_a::TEXT = 'NaN'
可以按预期工作,谢谢以上是关于如何在 aws redshift 中删除 NaN的主要内容,如果未能解决你的问题,请参考以下文章
AWS Glue to Redshift:是否可以替换,更新或删除数据?