简体   繁体   English

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

[英]How to update a single column with multiple data in oracle 12c

I am updating an oracle table, same column with multiple data. 我正在更新一个Oracle表,同一列具有多个数据。 How do i write the code? 我该如何编写代码?

I run this code but had error.. 我运行此代码,但有错误..

I am replacing Boy with Girl, Black with White and Green with Color. 我要用女孩代替男孩,用白色代替黑色,用颜色代替绿色。

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

I need to be able to write a single statement that can update same column with different and multiple data. 我需要能够编写一条语句来使用不同的多个数据更新同一列。

You need to handle ELSE (all rows will be updated some using A -> A (identity): 您需要处理ELSE (所有行将使用A-> A(身份)进行更新:

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

or better filter rows you want to update: 或更好地过滤要更新的行:

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');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM