netezza如何在插入select中时匹配列

时间:2014-06-24 19:49:32

标签: sql netezza

当我使用时:

insert into table2 select * from table1;

它是否按表的相对顺序或列名称匹配表1和表2?

1 个答案:

答案 0 :(得分:1)

声明:

insert into table2
    select *
    from table1;

按列位置对齐列,按列名对齐。在大多数情况下,您应该明确名称:

insert into table2(col1, . . . coln)
    select col1, . . . coln
    from table1;

Netezza以Postgres为基础。 Here是Postgres中的相关文档:

  

目标列名称可以按任何顺序列出。如果没有清单   列名完全给出,默认是所有列   表格按其声明的顺序;或者前N个列名称,如果有的话   只有VALUES子句或查询提供的N列。价值   由VALUES子句或查询提供的与   显式或隐式列列表从左到右。

但是,我认为这种行为是ANSI标准的一部分。我所知道的所有数据库都以这种方式运行。