Oracle SQL - 查询数据库更改

时间:2017-03-02 14:21:29

标签: sql oracle

目前遇到问题。我们正在尝试建立一个报告,我们可以看到从一个时刻到另一个时刻的字段之间的变化。例如,一个小例子就是我们希望报告在6个月前生成他们的姓氏,以及截至今天的姓氏。

是否有可以为我执行此操作的SQL表达式? (例如,将SQL日期参数添加到数据来自6个月前的第一个姓氏列)。

谢谢

1 个答案:

答案 0 :(得分:1)

使用flashback query(您必须确保数据库设置为首先支持此数据库并具有足够的闪回保留以处理6个月的数据):

SELECT COALESCE( current.id, previous.id ) AS id,
       current.name  AS current_name,
       previous.name AS name_six_months_ago
FROM   table_name current
       FULL OUTER JOIN
       (
         SELECT id, name
         FROM   table_name
         AS OF TIMESTAMP ( ADD_MONTHS( SYSTIMESTAMP, -6 ) )
       ) previous
       ON ( current.id = previous.id );