【问题标题】:Swap column values across rows跨行交换列值
【发布时间】:2018-05-30 10:31:03
【问题描述】:

我想更新 emp 的姓氏和名字。表示第一个 emp 名称应更新为第五个 emp。

id,firstname
1,john
2,pall
3,kevin
4,Alan

结果应该是

id,firstname
1,kevin
2,Alan
3,john
4,pall

【问题讨论】:

  • 请解释订购应该如何工作?您提到了5th emp 和姓氏,但也没有显示。
  • 我在一个表中缺少记录。我必须更新混乱的一列记录(任何顺序)。

标签: sql postgresql sql-update


【解决方案1】:

根据您提供给我们的有限信息,解决方案如下所示:

update emp
   set firstname = case id
                    when 1 then (select firstname from emp where id = 3)
                    when 2 then (select firstname from emp where id = 4) 
                    when 3 then (select firstname from emp where id = 1)
                    when 4 then (select firstname from emp where id = 2)
                 end
where id in (1,2,3,4);

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2020-02-19
    • 2020-08-20
    • 2020-02-11
    相关资源
    最近更新 更多