select cast(double_precision_col as varchar(39)) , case when double_precision_col = 'NAN' then NULL else cast(double_precision_col as numeric(616,308)) end from t_postgres.numeric_types;
returns
ERROR 3425: Float "NaN" is out of range for type numeric(616,308)
But according to https://www.vertica.com/blog/vertica-quick-tip-query-nan-values/ I don't see why ?