如下SQL:
select a,a from (
select trunc(dbms_random.value(0,36)) a from dual
);
在Oracle 9i 和10g中执行结果不同,10g中的结果才是期望的结果。
9i中2次输出的A的值竟然不同,10g中每次都是完全相同的。
但下面的SQL,只比上面的多了个where rownum < 2 , 9i和10g 无差异,都是每次输出相同的结果。
select a,a from (
select trunc(dbms_random.value(0,36)) a from dual where rownum < 2
);
怀疑是9i和10g的解析方式不同,请哪位高手给出更合理权威的解释。小弟在此先谢过啦!