select * from ( select a.studentid,name,sex,age,score,classname,teacher from a ,b where a.studentid=b.studentid order by dbms_random.random ) where rownum<11
恩,开始有点不明白,关于order by 的问题,后来google了下,原来可以这样理解 select * from ( select a.studentid,name,sex,age,score,classname,teacher,dbms_random.random from a ,b where a.studentid=b.studentid order by dbms_random.random ) where rownum <11谢谢1楼的兄弟
另外我猜想一楼的兄弟只所以要这样写,应该是为了随机的取得数据,但据 http://www.cnblogs.com/temptation/archive/2007/05/16/748897.html 里面所提到的 oracle取数据本身就是随机的,比如这样这个SQL SELECT * FROM A WHERE rownum<11 ORDER BY name; 这样就能产生10行随机的数据,但是我不能确定在两个表做了链接之后还是不是随机取数据,由于这里没有测试的环境, 所以不能给出一个肯定的结果,希望楼主可以帮忙测试下,呵呵 SELECT * FROM(SELECT a.student,name,sex,age,score,classname,teacher from a,b WHERE a.studentid=b.studentid ) WHERE rownum <11 ORDER BY name;或者下面这句(才接触oracle,不知道下面这个合不合规则,大家不要笑话我哈) SELECT a.student,name,sex,age,score,classname,teacher from a,b WHERE a.studentid=b.studentid AND rownum <11 ORDER BY name;
select a.studentid,name,sex,age,score,classname,teacher from a ,b
where a.studentid=b.studentid order by dbms_random.random )
where rownum<11
select * from (
select a.studentid,name,sex,age,score,classname,teacher,dbms_random.random from a ,b
where a.studentid=b.studentid order by dbms_random.random )
where rownum <11谢谢1楼的兄弟
oracle取数据本身就是随机的,比如这样这个SQL
SELECT * FROM A WHERE rownum<11 ORDER BY name;
这样就能产生10行随机的数据,但是我不能确定在两个表做了链接之后还是不是随机取数据,由于这里没有测试的环境,
所以不能给出一个肯定的结果,希望楼主可以帮忙测试下,呵呵
SELECT * FROM(SELECT a.student,name,sex,age,score,classname,teacher from a,b WHERE a.studentid=b.studentid ) WHERE rownum <11 ORDER BY name;或者下面这句(才接触oracle,不知道下面这个合不合规则,大家不要笑话我哈)
SELECT a.student,name,sex,age,score,classname,teacher from a,b WHERE a.studentid=b.studentid AND rownum <11 ORDER BY name;