首页 > 解决方案 > 使用唯一标识符将值从一个字段复制到另一个字段

问题描述

我再次迷路了:)我已经搜索过,但找不到对我有用的明确答案,我很想就我的问题获得一些帮助。

我有一个看起来像这样的表:

USERID      EVENT               CREATED_DATE
223         USER_CREATED        2018-26-10 00:00:00
223         USER_ACTIVATED      2019-01-01 00:00:00
245         USER_CREATED        2018-21-10 00:00:00
245         USER_ACTIVATED      2019-03-01 00:00:00
261         USER_CREATED        2018-22-10 00:00:00
261         USER_ACTIVATED      2019-09-01 00:00:00
257         USER_CREATED        2018-27-10 00:00:00

我想要的是更改 USER_ACTIVATED 事件的日期,我希望它们匹配相关的 USER_CREATED 事件日期,关键是 USERID。

例如,对于 USERID=223,USER_CREATED 日期为“2018-26-10 00:00:00”,因此 USER_ACTIVATED 日期也应为“2018-26-10 00:00:00”。

我需要一个 UPDATE 查询。

几点:

最后一点,UPDATE 的结果应该是:

USERID      EVENT               CREATED_DATE
223         USER_CREATED        2018-26-10 00:00:00
223         USER_ACTIVATED      2018-26-10 00:00:00
245         USER_CREATED        2018-21-10 00:00:00
245         USER_ACTIVATED      2018-21-10 00:00:00
261         USER_CREATED        2018-22-10 00:00:00
261         USER_ACTIVATED      2018-22-10 00:00:00
257         USER_CREATED        2018-27-10 00:00:00

标签: sqloracle

解决方案


我认为这可以满足您的要求:

update t
    set created_date = (select t2.created_date
                        from t t2
                        where t2.userId = t.userId and
                              t2.event = 'USER_CREATED'
                       )
    where event = 'USER_ACTIVATED';

推荐阅读