sql – 将列值从“男性”替换为“女性”,将“女性”替换为“男性”

我有一个表性别,其中只有两个条目有“男性”和“男性”.仅有2个条目的“女性”行数.现在我想编写一个替换这两个值的过程,输出应如下所示,

i/p             o/p 

sex             sex
------------------------
male           female
female          male
female          male
male           female

我正在创建一个程序,它给了我一个错误,我使用一个游标来获取超过1行..我知道我们可以通过只使用1个更新语句来做到这一点,但我想尝试这样,请看看这个. .

declare
  v_gen gender%rowtype;
  cursor cur_gender is
    select * from gender;
begin
  open cur_gender;
  loop
    fetch cur_gender into v_gen;
    select * from gender;
    if v_gen='male' 
    then
      update gender set sex='female';
    else
      update gender set sex='male';
    end if;
    exit when v_gen%notfound;  
  end loop;
  close cur_gender;
end; 
最佳答案
update Table1 set "col" = (case "col" when 'male' then 'female'
else 'male' end);

fiddle

转载注明原文:sql – 将列值从“男性”替换为“女性”,将“女性”替换为“男性” - 代码日志