On 21 September 2011 10:51, Oliver Kohll - Mailing Lists < oliver.li...@gtwm.co.uk> wrote:
> Hi, > > I understand random() is a volatile function and runs multiple times for > multiple rows returned by a SELECT, however is there a way of getting it to > run multiple times *within* another function call and in the same row. i.e. > something like > > select regexp_replace('+1 555 555 555', E'\\d', trunc(random() * 9 + > 1)::text,'g'); > regexp_replace > ---------------- > +1 111 111 111 > (1 row) > > As you can see, it returns the same digit each time. I've tried wrapping a > select around the trunc too. > > Regards > Oliver Kohll > www.gtwm.co.uk / www.agilebase.co.uk > > > > Short answer is: yes. More information you can find here http://simononsoftware.com/problem-with-random-in-postgresql-subselect/ regards Szymon