0

在 SQL(无论你喜欢哪种变体,比如 MySQL 或 MonetDB)中,它都非常直观和直接:

CREATE TABLE t2 AS SELECT c1 FROM t1;

并将选择结果作为新表中的新列获取。但是,如果您希望将结果作为同一个表(table t1)中的一个新列呢?让我们假设c1是类型INT并且可能为空。我们需要写:

ALTER TABLE t1 ADD c2 INT;
UPDATE TABLE t1 SET c2 = c1;

这是一个简单的版本,因为如果它是一个非空列,我们需要用一些值初始化新列;如果数据来自多个表,我需要某种内部查询UPDATE(如果可能的话)。

我可以以某种方式使用单个命令选择列吗?

4

1 回答 1

1

您使用join

UPDATE t1 JOIN
       t2
        ON t2.? = t1.?
   SET t1.c2 = t2.c1;

?是用于标识哪一行t2应该更新哪一行的列的占位符t1

于 2017-01-31T20:45:51.257 回答