oracle sql 随机读取N条数据

 

关键字:order by dbms_random.value

 

以下是几个不同的数据库随机取数据的sql

 

1、MySql  

Select From TABLE Order By Rand() Limit N 

2、SQL Server

Select  TOP  N *  From  TABLE  Order  By  NewID() 

NewID()函数将创建一个 uniqueidentifier 类型的唯一值。 

 

4、Oracle

1)dbms_random包

 

select from (select from Table order by dbms_random.value) where rownum < N;

 

注:dbms_random包需要手工安装,位于$ORACLE_HOME/rdbms/admin/dbmsrand.sql 

dbms_random.value(100,200)

可以产生100到200范围的随机数

 

2)按概率抽取:

 
select  from  Table  sample(百分比);

例:

select  from  Table  sample(10);
 

取表Table中记录条数的10%条记录

3)sys_guid 

select from (select from Table orderby   sys_guid()) where rownum<N;

猜你喜欢

转载自javatea.iteye.com/blog/2120295
今日推荐