Sql Update语句将错误值移动到正确列
在PL/SQL中,我有一个名为“Gender”的表,它有两列Sql Update语句将错误值移动到正确列,sql,oracle,sql-update,Sql,Oracle,Sql Update,在PL/SQL中,我有一个名为“Gender”的表,它有两列GENDER1和GENDER2 列GENDER1应该只有男性值-M,列GENDER2应该只有女性值-F。 出于什么原因,列GENDER1中有一些F值,列GENDER2中有一些M值 有没有一种方法可以让我在一个Update语句中将值移动到各自正确的列中?我认为这个Update语句满足了您的要求: update gender set gender1 = (case when gender2 = 'M' then 'M' else g
GENDER1
和GENDER2
列
GENDER1
应该只有男性值-M,列GENDER2
应该只有女性值-F。出于什么原因,列
GENDER1
中有一些F值,列GENDER2
中有一些M值
有没有一种方法可以让我在一个
Update
语句中将值移动到各自正确的列中?我认为这个Update语句满足了您的要求:
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';
但是,我不明白数据结构试图表示什么。为什么要在两列中存储性别?通过在一次更新中“移动值”,您是否打算更新正确的列,并清除不正确的列值?首先,非常感谢您的及时响应!我在一次采访中被问到这个问题,我告诉他们我会在两份最新声明中这样做。直到后来我才意识到我的失礼