Erik Thiele <[EMAIL PROTECTED]> writes:
> "Viorel Dragomir" <[EMAIL PROTECTED]> wrote:
>> update table_name
>> set c = a + b + (select c from table_name as x where x.seq = seq-1)
>> where c is null;
> hmmm. the query is run row by row, isn't it?
> but it will have different results depending on the order of those rows.
No, it won't, because the SELECTs will not see the changes from the
not-yet-completed UPDATE. The above command is almost right; it needs
to be
update table_name
set c = a + b + (select c from table_name as x where seq = table_name.seq-1)
where c is null;
because inside the sub-SELECT, unadorned "seq" will refer to the SELECT's
table.
You didn't say exactly what you wanted to do with null inputs, so that
issue may need more thought.
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html