首页 > 解决方案 > SQL:将包含数据的列添加到现有 SQL 表

问题描述

我有一张桌子(tableA):

Col1 Col2
美国广播公司 123
定义 456
789

我想添加Col3条目S, M,L这样 (tableB)

Col1 Col2 Col3
美国广播公司 123 小号
美国广播公司 123
美国广播公司 123 大号
定义 456 小号
定义 456
定义 456 大号
789 小号
789
789 大号

我只知道一种添加具有单个值的列的方法(即通过使用ALTER带有 的命令default)而不是具有多个数据点的列。

标签: sqlpostgresql

解决方案


添加列

ALTER TABLE tablea
            ADD COLUMN col3 varchar(1);

并将现有行的值设置为'S'

UPDATE tablea
       SET col3 = 'S';

然后使用表中的 anINSERT ... SELECT ...'M's 和'L's 交叉连接到表中以插入缺失的行。

INSERT INTO table3
            (col1,
             col2,
             col3)
            SELECT t.col1,
                   t.col2,
                   v.col3
                   FROM tablea t
                        CROSS JOIN (VALUES ('M'),
                                           ('L')) v
                                                  (col3);
            

推荐阅读