我去看了下为什么number大于1返回不出结果集,
因为执行sql(select m.* from my_test m)的时候当他查询到第一条数据的时候,rownum = 1;如果你的rownum>1,不成立,所以数据不返回,所以当sql继续查询的时候,rownum还是等于1,因为前面没有结果。
那么回到你的问题ceil(dbms_random.value()*20)既然这个是随机返回整形,那么,一条条sql查询的时候总能碰到rownum = 1吧,那么一条记录就返回了,又继续碰巧到rownum = 2,第二条记录就返回了.......
会不会是这样呢
你说得有些道理,谢谢