Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1950260
  • 博文数量: 176
  • 博客积分: 1857
  • 博客等级: 上尉
  • 技术积分: 2729
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-14 22:55
个人简介

吾生有涯,而知无涯,适当止学.循序渐进,步步提升 Talk is cheap, show me the code.

文章分类

全部博文(176)

文章存档

2019年(1)

2018年(14)

2017年(20)

2016年(31)

2015年(15)

2014年(5)

2013年(10)

2012年(80)

分类: Oracle

2012-08-13 11:12:05

dbms_random.value概念:

SQL> select dbms_random.value from dual;(dbms_random.value它是个随机值)
VALUE
----------
.217841143
即使你给它确定了位置(例如1至10,它也跟随自己小数值定位8位,取随机值)
SQL> select dbms_random.value(1,10) from dual;
DBMS_RANDOM.VALUE(1,10)
-----------------------
5.13335332
如果,想得到你想要的随机值,可以使用trunc
SQL> select trunc(dbms_random.value(1,10)) from dual;(这样,他就在你的设置范围内了)
TRUNC(DBMS_RANDOM.VALUE(1,10))
------------------------------
3

所以,你随机出数据的话,可以类似如下使用:
SQL> select id from zsd.zsdtest order by trunc(dbms_random.value(1,10));(其中zsdtest表就只有10条数据)
ID
----------
4
7
3
5
2
8
10
6
1
9
当然你之前的那个方法也同样适用,不过我建议上面那种。(上面的语法可控)
SQL> select id from zsd.zsdtest order by dbms_random.value
2 ;
ID
----------
9
7
8
5
1
10
4
2
6
3
已选择10行。
阅读(1451) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~