Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在oracle 12c中使用多个数据更新单个列_Sql_Oracle_Sql Update - Fatal编程技术网

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

Sql 如何在oracle 12c中使用多个数据更新单个列,sql,oracle,sql-update,Sql,Oracle,Sql Update,我正在更新一个oracle表,同一列有多个数据。如何编写代码 我运行了此代码,但出现了错误 我用女孩代替男孩,用白色代替黑色,用颜色代替绿色 UPDATE BIG SET FNAME = CASE WHEN FNAME = 'BOY' THEN 'GIRL' WHEN FNAME = 'BLACK' THEN 'WHITE' WHEN FNAME = 'GREEN' THEN 'COLOR' END; 我需要能够编写一条语句,用不

我正在更新一个oracle表,同一列有多个数据。如何编写代码

我运行了此代码,但出现了错误

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

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

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

您需要处理
否则
(所有行都将使用a->a(标识)进行更新):

或更好地筛选要更新的行:

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');
大更新
设置
FNAME=案例
当FNAME=‘男孩’然后是‘女孩’
当FNAME=黑色时,则为白色
当FNAME='GREEN'时,则为'COLOR'
结束;
其中FNAME在(‘男孩’、‘黑色’、‘绿色’)中;
大更新
设置FNAME=解码(FNAME,‘男孩’、‘女孩’、‘黑色’、‘白色’、‘绿色’、‘颜色’)
其中FNAME在(‘男孩’、‘黑色’、‘绿色’)中;

我运行了这段代码,但出现了错误。
错误消息是?你的代码看起来不错Lukasz,当我运行脚本时,它会更新列,但随后会使未更新的列为空。Lukasz Szozda我真的很感激,这三个都很好。
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');