如何在 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 中使用多个数据更新单个列的主要内容,如果未能解决你的问题,请参考以下文章