首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于Oracle记要随机排序

2012-10-14 
关于Oracle记录随机排序有一张表TableName1,字段个数为8,有下列语句:SQL codeSELECT * FROM TableName1 OR

关于Oracle记录随机排序
有一张表TableName1,字段个数为8,有下列语句:

SQL code
SELECT * FROM TableName1 ORDER BY 1;

在oracle中,这么写表示按照第1个字段排序;1为第一个字段的索引(当然,不能超过字段索引最大值);也就是说,不管我order哪一个字段索引,这里的排序方式都不会超过8种;

然而,在执行下列语句时:
SQL code
SELECT * FROM TableName1 ORDER BY DBMS_RANDOM.value;

按照理解;函数DBMS_RANDOM.value表示产生一个随机数;执行原理与上述语句相同,排序方式不会超过8种,但是,实际上随机排序方式却超过了8种。

-->
有些不解,再此求教。

[解决办法]
这种是把DBMS_RANDOM.value当成一列来处理了。相当于
SELECT t.*,DBMS_RANDOM.value FROM TableName1 t 
ORDER BY DBMS_RANDOM.value;

[解决办法]
探讨
有一张表TableName1,字段个数为8,有下列语句:

SQL code

SELECT * FROM TableName1
ORDER BY 1;


在oracle中,这么写表示按照第1个字段排序;1为第一个字段的索引(当然,不能超过字段索引最大值);也就是说,不管我order哪一个字段索引,这里的排序方式都不会超过8种;

然而,在执行下列语句时:

SQL c……

[解决办法]
SQL code
 select * from emp order by trunc(dbms_random.value(1,8));--dbms_random.value(1,8)是取1-8之间的随机数 有小数--trunc(dbms_random.value(1,8))截取整数部分 

热点排行