如何在 oracle 12c 中使用多个数据更新单个列

Posted

技术标签:

【中文标题】如何在 oracle 12c 中使用多个数据更新单个列【英文标题】:How to update a single column with multiple data in oracle 12c 【发布时间】:2019-01-18 20:08:31 【问题描述】:

我正在更新一个 oracle 表,同一列包含多个数据。代码怎么写?

我运行了这段代码但有错误..

我用女孩代替男孩,用白色代替黑色,用彩色代替绿色。

UPDATE BIG
SET
    FNAME = CASE
        WHEN FNAME = 'BOY' THEN 'GIRL'
        WHEN FNAME = 'BLACK' THEN 'WHITE'
        WHEN FNAME = 'GREEN' THEN 'COLOR'
    END;

我需要能够编写一条语句,用不同的和多个数据更新同一列。

【问题讨论】:

I run this code but had error.. 错误信息是?你的代码看起来不错 Lukasz,当我运行脚本时,它会更新列,但随后会使未更新的列变为 NULL。 【参考方案1】:

您需要处理ELSE(所有行都将使用 A -> A(身份)更新一些:

UPDATE BIG
SET
    FNAME = CASE FNAME
        WHEN 'BOY' THEN 'GIRL'
        WHEN 'BLACK' THEN 'WHITE'
        WHEN 'GREEN' THEN 'COLOR'
        ELSE FNAME
    END;

或者更好的过滤你想要更新的行:

UPDATE BIG
SET
    FNAME = CASE
        WHEN FNAME = 'BOY' THEN 'GIRL'
        WHEN FNAME = 'BLACK' THEN 'WHITE'
        WHEN FNAME = 'GREEN' THEN 'COLOR'
    END;
WHERE FNAME IN('BOY', 'BLACK', 'GREEN');

<=>

UPDATE BIG
SET FNAME = DECODE(FNAME, 'BOY', 'GIRL', 'BLACK', 'WHITE', 'GREEN', 'COLOR')
WHERE FNAME IN('BOY', 'BLACK', 'GREEN');

【讨论】:

Lukasz Szozda 我真的很感激,这三个都很好。

以上是关于如何在 oracle 12c 中使用多个数据更新单个列的主要内容,如果未能解决你的问题,请参考以下文章

Oracle12c多租户管理用户角色权限

如何安装Oracle 12c数据库软件

如何安装Oracle 12c数据库软件

Oracle12C多租户管理用户角色权限

Oracle 12c 用相同的数据更新多行

如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)