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 - 将日期从一列复制到另一列的更新语句的主要内容,如果未能解决你的问题,请参考以下文章