Markus Wagner <[EMAIL PROTECTED]> writes: > We are glad to have found out that we can evaluate such expressions > simply by calling them with SELECT, e. g. "SELECT 29 - 2 > 18" returns true. > We think that it would be very nice to benefit from the pg database system > parser. But can we rely on this functionality in the future? Is this > standard SQL?
Well, it's not standard SQL: SQL92 requires a FROM clause in SELECT. But I can assure you it won't disappear from Postgres; it's too darn useful. The customary workaround, as seen in systems like Oracle, is to have a dummy table containing exactly one row; Oracle calls the dummy table DUAL. (Anyone know why? Seems like SINGLE would be more sensical...) Then you can do SELECT 29 - 2 > 18 FROM dual; The fact that your expression doesn't actually *use* any values from the one table row doesn't bother the system; you get one evaluation of the expression, you're happy, and so is the SQL standard. My advice is to just write "SELECT 29 - 2 > 18", because it's clearer in intent, simpler, and some tiny fraction faster than specifying a useless table reference. But you can take comfort in the fact that there's a simple workaround if you're ever forced to use a DBMS that won't accept this syntax. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])