当 TIMESTAMP 列的值为 NULL 时,如何使用 COALESCE to return 'N/A'?
How do I use COALESCE to return 'N/A' when the value of a TIMESTAMP column is NULL?
是否可以使用 COALESCE(或任何其他方式)将 TIMESTAMP 列中的 NULL 值替换为类似 'N/A' 的字符串?
在我的 SELECT
声明中,我有一个
CASE WHEN n.expiration_date::date IS NULL THEN 'N/A' ELSE n.expiration_date::date END
当我尝试这个时,我得到了这个错误,这是有道理的:
invalid input syntax for type date: "N/A"
我也发现了 this blog post 这个问题。有解决办法吗?
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
是否可以使用 COALESCE(或任何其他方式)将 TIMESTAMP 列中的 NULL 值替换为类似 'N/A' 的字符串?
在我的 SELECT
声明中,我有一个
CASE WHEN n.expiration_date::date IS NULL THEN 'N/A' ELSE n.expiration_date::date END
当我尝试这个时,我得到了这个错误,这是有道理的:
invalid input syntax for type date: "N/A"
我也发现了 this blog post 这个问题。有解决办法吗?
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