【问题标题】:Updating field value if it is null如果为空,则更新字段值
【发布时间】:2020-04-10 22:38:24
【问题描述】:

我认为这是一个简单的问题,但我有一段时间没有接触过 Oracle SQL。

如果某个字段值为空,我想更新一个表。

我不确定是否应该使用“不存在”子句,这就是我目前所拥有的:

update table_classroom
set cod_classroom = 'unknown'
where exists (select * from table_classroom where cod_classroom is null)

这对吗?

【问题讨论】:

    标签: sql oracle sql-update exists


    【解决方案1】:

    更简单:

    update table_classroom
    set cod_classroom = 'unknown'
    where cod_classroom is null
    

    【讨论】:

    • 谢谢 :) 如果我还想编辑同一行上的 modify_date 字段值怎么办?我应该只使用 set cod_classroom = 'unknown', mod_date = sysdate 吗?
    • @madsantos 。 . .这会问你问的问题。如果您还有其他问题,您应该将其作为问题提出。也就是说,您可以在 set 子句中添加更多列和值。
    • @madsantos 是的,你可以set cod_classroom = 'unknown', mod_date = sysdate
    【解决方案2】:

    也许您还想省略 cod_classroom 为空的未来条目。如果是这种情况,您不需要手动更新该列,但您可以将其包含在您的 alter 语句中:

    ALTER TABLE table_classroom MODIFY (cod_classroom NOT NULL DEFAULT 'unknown')
    

    【讨论】:

    • 从 12c 开始,您不妨像 default on null 'unknown' 一样这样做。
    猜你喜欢
    • 2014-03-31
    • 2019-09-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2012-10-29
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多