我正在使用 PostgreSQL 8.4.4 。我的问题是,我正在计算两个bigint值的小时 - 小时的时差。我正在将这些值转换为时间戳,然后计算差异。我得到了表中存在的值的差异。但对于那些返回select
case when exists (SELECT age(to_timestamp(incepted_date), to_timestamp(invoice_pay_date))
from transactions_transactions where id = 4275)
then (SELECT age(to_timestamp(incepted_date), to_timestamp(invoice_pay_date))
from transactions_transactions where id = 4275)
else 'missing'
end
或不在表格中的人,我希望结果为' Missing'。当我在查询中添加它时,我得到了上面的错误。以下是我正在使用的查询:
rake dev:setup
答案 0 :(得分:0)
您可以使用coalesce()和nullif()功能的组合来实现结果,而不是使用下面的CASE-WHEN
SELECT coalesce(nullif(age(to_timestamp(incepted_date), to_timestamp(invoice_pay_date))::TEXT, ''), 'Missing')
FROM transactions_transactions
WHERE id = 4275