Как удалить NaN в aws redshift

Я пытаюсь удалить NaN из столбца в aws redshift (на основе 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)


person Sam Gilbert    schedule 13.04.2016    source источник
comment
Просто любопытно. Не могли бы вы проверить: SELECT * FROM table001 WHERE NOT (variable_1 <> 'NaN')? Плюс, возможно, некоторая обработка NULL, если столбец имеет значение NULL.   -  person Lukasz Szozda    schedule 14.04.2016
comment
спасибо за комментарий, я попробовал это, но он возвращает ноль строк   -  person Sam Gilbert    schedule 14.04.2016


Ответы (1)


NaN не равно другому NaN в столбцах RedShift (в отличие от PostgreSQL).

Вы должны проверить его текстовое представление:

UPDATE  table001
SET     variable_a = NULL
WHERE   variable_a::TEXT = 'nan' -- mind the case
person Quassnoi    schedule 13.04.2016
comment
Использование WHERE variable_a::TEXT = 'NaN' в предложении where работает как положено, спасибо - person Sam Gilbert; 14.04.2016