postgresql - SQL: conditional SELECT -
i utilize next sql query receive entries older payment_target
days.
select * orders where(extract(epoch age(current_date, date_trunc('day', orders.created_at))) - orders.payment_target*86400 >= 0)
however, want modify query in way orders.invcoice_sent_at
used calculation basis if not null. otherwise, `orders.created_at' should used.
i tried next query guess more pseudo code valid sql. don't know how can set attribute used in statement block.
select * orders (extract(epoch age(current_date, date_trunc('day', if orders.invoice_sent_at not null begin orders.invoice_sent_at end else begin orders.created_at end ))) - orders.payment_target*86400 >= 0)
instead of if
can utilize coalesce
work on every database supporting ansi sql:
coalesce( orders.invoice_sent_at, orders.created_at) - orders.payment_target*86400 >= 0)
sql postgresql
No comments:
Post a Comment