David Goodenough wrote:
I could do this by doing a select * from addresses where customer = ?Use NULL to indicate that the customer type is default. Then you can query with:
and type = 'billing', looking to see if there is a result row and if not
repeating the query with type = 'default', but that seems inelegant to me.
select * from addresses where customer = ? and coalesce(type, 'billing') = 'billing'
If type is NULL, the comparison will be 'billing' = 'billing' - always true. If there's a bunch of non-null type addresses, you'll get the 'billing' one.
http://www.postgresql.org/docs/8.0/interactive/functions-conditional.html#AEN12003
Matt
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend