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

Oracle 随机获取记录

阅读更多

           1. Oracle 随机获取10条记录

            select * from (select * from table order by dbms_random.value ) where rownum <11

 

Oracle 随机获取10条记录:

select tt.*
from (select rownum rn, t.* from table1 t
) tt
where tt.rn in
(select trunc(dbms_random.value(1, (select count(*) from table1 )))
from dual
connect by rownum <= 10); ----
这里是最多取10

关键点:

1.dbms_random.value()是随机产生( 0,1 )之间的数。dbms_random.value1,100)随机产生1100之间的数。

2.trunc() 是一个格式化函数,可以格式化日期和number两种数据。

1> trunc(for dates)

具体的语法格式:TRUNCdate[,fmt]),date:一个日期格式;fmt:日期格式,该日期将由指定的元素格式所截去。缺省的时候,截取的是当前天。

trunc(sysdate) --返回今天.
trunc(sysdate,'yyyy') --
返回当年第一.
trunc(sysdate,'mm') --
返回当月第一天.
trunc(sysdate,'d') --
返回当前星期的第一天.
trunc(sysdate,'dd')--
返回当前年月日

2>trunc(for number)

TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

直接上例子:

TRUNC89.9852=89.98
TRUNC
89.985=89
TRUNC
89.985-1=80
注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

3.connect by

1>Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询。

egselect rpad(' ',(level-1)*4)||a.resrc_name from sys_menu a connect by prior menu_id=parent_id start with a.parent_id='0' --查询菜单层级关系。以0为根节点,一次展开往下的叶子节点。 level 伪列表示节点深度

2>通过CONNECT BY生成序列(上例就用了这个功能)

egSELECT ROWNUM FROM DUAL CONNECT BY ROWNUM <= 10;

3>通过CONNECT BY用于十六进度转换为十进制

分享到:
评论

相关推荐

    Oracle里抽取随机数的多种方法

    在 Oracle 中抽取随机数是许多应用场景中常见的问题,例如在某个活动中需要随机取出一些符合条件的用户,以颁发获奖通知或其它消息。本文将通过实例讲解如何抽取随机数的多种方法。 首先,我们可以使用 Oracle 自带...

    Oracle插入数据时获取自增ID

    ### Oracle插入数据时获取自增ID 在Oracle数据库中,当需要实现类似其他数据库系统(如MySQL、SQL Server等)中的自动增长字段功能时,通常会采用序列(sequence)和触发器(trigger)来实现这一需求。下面将详细...

    随机获取oracle数据库中的任意一行数据(rownum)示例介绍

    Oracle数据库中的`ROWNUM`是一个非常实用的特性,它允许我们根据行的顺序来筛选结果集。`ROWNUM`在处理大数据集时尤其有用,例如在执行随机选取数据、分页查询或者特定行选择等场景。 首先,`ROWNUM`是一个伪列,它...

    Oracle里取随机数的几种具体的方法

    5. 将临时表 tmp_1 和 tmp_2 相关联,取得符合条件的随机记录。 6. 最后,删除临时表 tmp_1、tmp_2 和序列号 tmp_id。 例如,以下是使用 DBMS_RANDOM 包生成随机数的示例代码: ```sql -- 创建序列号 tmp_id CREATE...

    SQL随机提取N条记录

    在SQL(Structured Query ...以上就是关于“SQL随机抽取N条记录”的详细解释,这些方法可以帮助你从数据库中获取随机样本,无论是进行数据分析还是其他目的。记住,根据你使用的具体SQL方言,可能需要调整上述代码。

    Oracle中如何用一条SQL快速生成10万条测试数据

    这里,`sysdate`获取当前系统日期和时间,而`rownum/24/3600`则是将ROWNUM转换为小时数,再转换为天数,从而使得每个新行的时间比前一行晚约一秒,最终得到一个按秒递增的时间序列。 #### 3. **随机数生成** `...

    Oracle数据库操作

    本文将深入探讨在Oracle数据库操作中涉及的一些关键知识点,包括记录集的显示、时间的SQL转换、汉字的随机选取以及事务处理等。 1. **子程序_显示记录集信息**: 在Oracle数据库操作中,我们经常需要从查询结果中...

    oracle常用问题解答

    **问题**: 如何在Oracle中随机抽取前N条记录? **解答**: 可以使用`RAND`函数配合`RANK`函数来实现。 - **示例**: 抽取前5条记录: ```sql SELECT * FROM ( SELECT t.*, RANK() OVER (ORDER BY DBMS_RANDOM.VALUE...

    富士通内部培训ORACLE资料

    9. **随机抽取记录**:要随机抽取前N条记录,可以结合`ROWNUM`和`ORDER BY DBMS_RANDOM.VALUE`实现。 10. **指定范围抽取记录**:从N行到M行的记录可通过子查询配合`ROWNUM`实现,如 `(SELECT * FROM table WHERE ...

    oracle IO 使用情况

    首先,SQL语句的执行涉及多个步骤,包括解析、执行计划生成、数据获取等,其中数据获取阶段往往会产生大量的I/O操作。当数据库需要从磁盘读取或写入大量数据时,IO压力会增加,可能导致系统性能下降。 描述中提到的...

    Advanced_Oracle_Troubleshooting

    - **管理变化**:识别并记录系统中的任何改变,这些改变可能是问题的触发因素。 - **理解**:深入理解系统的运行机制,包括硬件配置、软件版本、数据库结构等。 - **测量**:通过性能监控工具收集数据,例如使用...

    oracle分页查询

    在没有明确的排序情况下,Oracle会随机选择记录,导致结果不一致。正确的做法是将排序和行号分配分开处理,使用三层嵌套查询: 1. **第一层**:对数据进行排序 ```sql select * from t_stu t order by s_birthday ...

    oracle-18c-新特性

    3. **在 ADG 中支持 Nologging 数据的复制同步**:这为那些不需要日志记录的应用程序提供了更快的同步选项。 4. **ADG 自动重定向 Update 操作到主库**:这项特性极大地方便了读写分离的场景,可以自动将更新操作...

    Delphi连接SQL随机显示数据库中的记录..rar

    例如,可以先获取记录总数,然后生成一个介于0和总数之间的随机数,再用这个随机数作为记录索引来读取记录。这种方式更适合只显示单条随机记录的场景。 总结来说,使用Delphi连接SQL数据库并随机显示记录涉及数据库...

    四种数据库随机获取10条数据的方法

    本篇文章将详细介绍在四种主流的数据库系统——SQL Server、Oracle、MySQL和Access中,如何有效地获取10条随机数据。 1. **SQL Server** 在SQL Server中,我们可以利用`TOP`子句来限制返回的行数,并结合`NEWID()`...

Global site tag (gtag.js) - Google Analytics