我有两张桌子:
T1
列A1, A2, A3, A4,...., A20
。
T2
的 B1, B2, B3,...., B15.
所有列的数据类型均为varchar
。
我想将列范围A1-A10
的所有值复制到B1-B10
。我怎么在Redshift中这样做?我试过了:
insert into T2(B1,B2,...,B10) select A1 A2 A3 ... A10 from T1
但它失败了。我在列名中更正了丢失的错误,(点)。
如何将所选列从一个表插入另一个表?还有其他办法吗?
答案 0 :(得分:0)
您需要insert into T2 (select A1, A2 ... A10 from T1)
。
我测试了以下查询,并且对我来说工作正常:
create temp table T1 (a varchar(5), b varchar(5), c varchar(5), d varchar(5), e varchar(5));
insert into T1 values ('t11', 't12', 't13', 't14', 't15');
create temp table T2 (a varchar(5), b varchar(5), c varchar(5));
insert into T2 values ('t21', 't22', 't23');
insert into T2 (select a, b, c from T1);
select * from T2;
最后一行正确印刷了以下内容:
t21 t22 t23
t11 t12 t13