David Goodenough wrote:
>I could do this by doing a select * from addresses where customer = ?
>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.
>
>
Use NULL to indicate that the customer type is default. Then you can
query with:
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