`
lizhiyu211
  • 浏览: 232644 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE/MSSQL随机取一条记录方法

阅读更多

oracle随机取数据:

select *
 from (       
            select * from sys_dict order by sys_guid() 
          )
where rownum =1

 

oracle随机取数据2:

select *
  from (       
    select * from sys_dict order by dbms_random.value
           )
where rownum <2

 

sqlserver 随机取数据:

select top 1 * 
from 表名 
order by newid () 

 重点在于newid()生产随机值,

取多条则将top后面数字改成具体数量即可

 

分享到:
评论
6 楼 lizhiyu211 2013-01-30  
哦,那看来性能确实不行,学习了。
记得还有一次是这么用的,是一个录取系统的程序,160W条数据,
用的这个方法是为了让数据按某些规则排名后,如果存在N条数据的排序条件都一样(也就是并列),则随机排序,最后放到中间表中然后再使用,这个时候性能要求就不太高了。
5 楼 Aaron5 2013-01-27  
Aaron5 写道
lizhiyu211 写道
Aaron5 写道
这个oracle的随机取record有很大问题。如果表过大,根本取不出值就超时了


一楼的方法,之后工作中也经常用。百十万数据没问题 再多了还没试过。

我在一个超过3000万记录的表中用了下,超时了。用100测试的时候就开始有点慢了。

写错,是100万
4 楼 Aaron5 2013-01-27  
lizhiyu211 写道
Aaron5 写道
这个oracle的随机取record有很大问题。如果表过大,根本取不出值就超时了


一楼的方法,之后工作中也经常用。百十万数据没问题 再多了还没试过。

我在一个超过3000万记录的表中用了下,超时了。用100测试的时候就开始有点慢了。
3 楼 lizhiyu211 2013-01-24  
Aaron5 写道
这个oracle的随机取record有很大问题。如果表过大,根本取不出值就超时了


一楼的方法,之后工作中也经常用。百十万数据没问题 再多了还没试过。
2 楼 Aaron5 2013-01-08  
这个oracle的随机取record有很大问题。如果表过大,根本取不出值就超时了
1 楼 Aaron5 2013-01-08  
select *
  from (      
    select * from sys_dict order by dbms_random.value
           )
where rownum <2

相关推荐

    [数据生成工具]关于datafactory的介绍——即如何快速生成大批量数据.doc

    该工具可以快速生成大量数据,满足各种数据库类型的需求,包括 Oracle、DB2、MSSQL 等,以及 Excel、Access 等。 DataFactory 的工作原理是通过与数据库进行连接后,对选定表的字段设定一定的插入规则,然后批量...

    .Net数据库生成测试数据工具类

    工具类可以包含一系列方法用于生成各种类型的数据,如随机字符串、数字、日期等。可以使用System.Random类来生成随机数,配合其他库如`Faker.NET`来生成更复杂的文本数据。 4. **事务处理**:为了保证数据的一致性...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例077 跳过数据输出中指定的记录 111 实例078 执行指定次数的循环 112 2.7 自定义函数 113 实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例077 跳过数据输出中指定的记录 111 实例078 执行指定次数的循环 112 2.7 自定义函数 113 实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数...

    数据库操作语句大全(sql)

    13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...

    经典SQL语句大全

    13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: ...

Global site tag (gtag.js) - Google Analytics