更新语句以将错误的值移动到正确的列

时间:2014-02-05 22:46:53

标签: sql oracle sql-update

我在PL / SQL中有一个情况,我有一个名为'Gender'的表,它有2列GENDER1GENDER2
GENDER1应该只有男性 - 值-M和GENDER2应该只有女性值-F。
由于某种原因,列GENDER1中存在一些F值,并且列GENDER2中有一些M值。

我是否可以在单个Update语句中将值移动到各自正确的列?

1 个答案:

答案 0 :(得分:0)

我认为此更新声明符合您的要求:

update gender
    set gender1 = (case when gender2 = 'M' then 'M' else gender1 end),
        gender2 = (case when gender1 = 'F' then 'F' else gender2 end)
    where gender1 = 'F' or gender2 = 'M';

但是,我不明白数据结构试图代表什么。