【问题标题】:SQL - Copy data from one column to another in the same tableSQL - 将数据从同一表中的一列复制到另一列
【发布时间】:2021-05-06 11:31:33
【问题描述】:

我有一个包含 1000 多行的表,我正在尝试将所有行的数据从一列复制到另一列。

这是我的“发票”表:

example1 example 2
A NULL
B NULL
C NULL

预期的最终结果应该是:

example1 example 2
A A
B B
C C

到目前为止我尝试了什么:

UPDATE "Invoice" 
SET "example1" = copiedData
FROM (SELECT "example2" FROM "Invoice") AS copiedData;

这确实会更新所有行,但问题是它不会逐行更新,而是从子查询中随机选取一行并将其应用于所有行。

当前结果的示例:

example1 example 2
A B
B B
C B

我在这里错过了什么?

谢谢。

【问题讨论】:

    标签: sql postgresql sql-update subquery


    【解决方案1】:

    你想要的更简单:

    UPDATE "Invoice" 
        SET "example2" = "example1";
    

    注意:我强烈建议您删除双引号!不要转义列名——它只会让代码的编写和阅读变得更加困难。

    【讨论】:

      【解决方案2】:

      您只需要使用 example1 更新 Invoice 表的 example2 列。

      UPDATE Invoice 
      SET example2 = example1;
      

      如果您只想在 example2 列为空时更新它,那么您还需要一个 where 子句。

      UPDATE Invoice 
      SET example2 = example1 where example2 is null;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-28
        • 1970-01-01
        • 2011-09-12
        • 2016-03-15
        相关资源
        最近更新 更多