I think that the first query ought to succeed, since although priceband is ambiguous (it could mean either tbl_prices.priceband or tbl_instruments.priceband), the information in the WHERE clause means that they are explicitly equal, and so it doesn't matter which one we use.
Well, it just means the type's equality operator returns true for these two values -- I'm not sure it is wise to assume they are completely interchangeable.
More generally, it makes sense to me that resolution of column references is a property of the syntax of a statement, not something derived from its semantics (e.g. the fact that we can infer for some particular statement that two columns are equal).
-Neil
---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings