0

是否可以使用 COALESCE(或任何其他方式)将 TIMESTAMP 列中的 NULL 值替换为“N/A”之类的字符串?

在我的SELECT声明中,我有一个

CASE WHEN n.expiration_date::date IS NULL THEN 'N/A' ELSE n.expiration_date::date END

当我尝试这个时,我得到了这个错误,这是有道理的:

日期类型的输入语法无效:“N/A”

我也发现了这篇关于这个问题的博客文章。有办法解决吗?

4

1 回答 1

5

CASE 表达式的所有值都必须计算为相同的数据类型。

如果确实需要 N/A,则需要将日期转换为字符类型:

CASE 
    WHEN n.expiration_date IS NULL THEN 'N/A' 
    ELSE n.expiration_date::date::text 
END

或者,如果您想控制格式:

CASE 
    WHEN n.expiration_date IS NULL THEN 'N/A' 
    ELSE to_char(n.expiration_date, 'YYYY-MM-DD')
END
于 2019-05-09T11:37:55.097 回答