如何使用 case 按 id 更新行?

How to update row by id using case?

是否可以通过 id 更新其他行值?

我这样试试 但是没什么..

UPDATE era 
SET id = CASE
    WHEN id = 3 THEN gender = 'Female'--or maybe it is possible to call insert command here? insert into era (gender) values 'female'?
    WHEN id = 4 THEN gender = 'Male'
END;

我希望在结果中更改 table 中的值...

我不知道你的更新有多大,但可以使用 from 子句中的 table 连接,然后对 case 语句稍作更改,

update era u
   set gender = case 
                 when f.id = 3
                  then 'Female'
                 when f.id = 4
                  then 'Male'
                end
  from era f
 where u.id = f.id

如果您想更新列 gender,那么您应该在 SET 中使用它,而不是像这样在 id 中使用它:

UPDATE era 
SET gender = CASE id
    WHEN 3 THEN 'Female'
    WHEN 4 THEN 'Male'
END
WHERE id IN (3, 4)