将一个表的部分列复制到另一个表的部分列

34 浏览
0 Comments

将一个表的部分列复制到另一个表的部分列

我试图使用另一个表的输入来INSERT INTO一个表。尽管对于许多数据库引擎来说这完全可行,但我总是似乎难以记住当天的SQL引擎的正确语法(MySQLOracleSQL ServerInformixDB2)。

是否存在一种来自SQL标准(例如SQL-92)的万能语法,可以让我插入值而不必担心底层数据库?

admin 更改状态以发布 2023年5月24日
0
0 Comments

Claude Houle的回答:应该可以正常工作,您还可以有多栏和其他数据:

INSERT INTO table1 ( column1, column2, someInt, someVarChar )
SELECT  table2.column1, table2.column2, 8, 'some string etc.'
FROM    table2
WHERE   table2.ID = 7;

我只使用过Access、SQL 2000/2005/Express、MySQL和PostgreSQL的这种语法,所以这些应该都已经覆盖了。它应该也可以与SQLite3一起工作。

0
0 Comments

尝试:

INSERT INTO table1 ( column1 )
SELECT  col1
FROM    table2  

这是标准的ANSI SQL,可以在任何DBMS上使用。

它肯定适用于:

  • Oracle
  • MS SQL Server
  • MySQL
  • Postgres
  • SQLite v3
  • Teradata
  • DB2
  • Sybase
  • Vertica
  • HSQLDB
  • H2
  • AWS RedShift
  • SAP HANA
  • Google Spanner
0