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




---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend

Reply via email to