Hi Tom If you don't want that, you can use a WITH to lock down the result of a single random() call.
How should I do it? 于 2012-7-25 10:55, Tom Lane 写道: > wangqi <wan...@edgesoft.cn> writes: >> ■SQL-3 >> select * from wk_mclid1 where id1= (round((random() * (10-1))::integer) >> + 1)::integer; >> When we excute SQL-3,sometimes the result was 0 record or more than 1 >> record. >> Why? > random() is re-evaluated for each row scanned by the SELECT. > > If you don't want that, you can use a WITH to lock down the result of a > single random() call. > > regards, tom lane > -- ---------------------------------------------------- Yours sincerely, Qi Wang Edgesoft (China) Co.,Ltd F26th Block B,Zhongli Building, No.32 Huoju Road, Hi-Tech Zone,Dalian,China Zip:116023 Tel:+86-411-84753511 Fax:+86-411-84753577 http://www.edgesoft.cn mailto:wan...@edgesoft.cn ---------------------------------------------------- -- Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin