oracle时间倒序查询_Oralce 复杂查询

一共4个,CASE 和 WITH 很简单就省略了。

1.层次查询

START WITH condition CONNECT BY condition;

START WITH: 用于指定层次查询的根行。

CONNECT BY: 用于指定父行与子行之间的关系,

在 condition 表达式中,必须使用 PRIOR 引用父行,语法如下:

... PRIOR expr = expr 或 expr = PRIOR expr

示例如下:

SELECT LPAD(' ', 3*(LEVEL-1))||ename ename, LPAD(' ', 3*(LEVEL-1))||job job FROM emp

WHERE START WITH mgr IS NULL CONNECT BY mgr = PRIOR empno;

2.倒序查询

从Oracle 9i开始,通过使用倒序查询(Flashback Query)特征,可以查看到过去某时间点所提交的数据。

注意,如果使用倒序查询,要求数据库必须采用UNDO管理方式,并且初始化参数 undo_retention 限制了

UNDO数据的保留时间。通过在 FROM 子句后指定 AS OF 子句可以查看过去的历史数据。在 AS OF 子句中

既可以指定时间,也可以指定SCN。注意,使用倒序查询只能看到5分钟之前变化的数据,而不能看到5分钟之内变化的数据。

示例如下:

SELECT ename, sal FROM emp AS OF TIMESTAMP to_timestamp('2003-02-23 02:25:10&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值