Oracle - 将日期从一列复制到另一列的更新语句

Posted

技术标签:

【中文标题】Oracle - 将日期从一列复制到另一列的更新语句【英文标题】:Oracle - Update statement for copying dates from 1 column to another 【发布时间】:2016-01-14 10:03:52 【问题描述】:

在我的 Oracle DB 中,CustomerActivity 表中有两个日期列;最后更新和最后添加。由于多年来的一些变化,该应用程序使用上次更新,但暂时使用上次添加日期,在某些情况下随机使用两个列(听起来像糟糕的开发/缺陷),现在它切换回上次更新日期(疯狂权利?)

在任何情况下,我都希望仅在上次添加 > 上次更新时才将上次添加日期值复制到上次更新日期列中。在此之后,我将从表中删除最后添加的列(永久修复)

如何为此编写更新语句?

【问题讨论】:

【参考方案1】:

正如您明确指出的那样,“仅当上次添加 > 上次更新时,我想将上次添加日期值复制到上次更新日期列中”。由于 SQL 是一种声明性语言,您只需将其转换为 SQL:

我想将上次添加的日期值复制到上次更新日期列中

SET last_updated = last_added

仅当上次添加 > 上次更新时

WHERE last_added > last_updated

现在你只需要把它们放在一起:

UPDATE CustomerActivity
SET    last_updated = last_added
WHERE  last_added > last_updated

【讨论】:

当我运行它时,它会导致所有符合条件的行的记录都是空白的(在提交之前),不知道为什么会这样

以上是关于Oracle - 将日期从一列复制到另一列的更新语句的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 创建触发器函数以在允许插入之前将值从一列复制到另一列

SQL根据条件将值从一列复制到另一列

在同一个表中将值从一列复制到另一列

如何将值从一列映射到另一列数据框? [复制]

如果满足条件,熊猫将值从一列复制到另一列

Pandas 根据非恒定值的第三列将值从一列复制到另一列