Generating Random Number In Each Row In Oracle Query

前端 未结 4 1070
野趣味
野趣味 2020-12-08 09:42

I want to select all rows of a table followed by a random number between 1 to 9:

select t.*, (select dbms_random.value(1,9) num from dual) as RandomNumber
fr         


        
4条回答
  •  误落风尘
    2020-12-08 10:07

    Something like?

    select t.*, round(dbms_random.value() * 8) + 1 from foo t;
    

    Edit: David has pointed out this gives uneven distribution for 1 and 9.

    As he points out, the following gives a better distribution:

    select t.*, floor(dbms_random.value(1, 10)) from foo t;
    

提交回复
热议问题