Jac*_*ack 6 sql database select hsqldb
我正在尝试根据选择的结果创建一个新表。这适用于 SQL Server:
SELECT * INTO newTable FROM (SELECT col1, col2, col3 FROM oldTable) x;
Run Code Online (Sandbox Code Playgroud)
现在,我想用 HSQLDB(2.2 版)实现完全相同的功能。我尝试了几种形式,例如
SELECT * INTO newTable FROM (SELECT col1, col2, col3 FROM oldTable);
SELECT INTO newTable FROM SELECT col1, col2, col3 FROM oldTable;
CREATE TABLE newTable AS SELECT col1, col2, col3 FROM oldTable;
Run Code Online (Sandbox Code Playgroud)
所有这些变体都会导致某种形式的语法错误。如何使用 HSQLDB 从选择中创建表?
的手册中有一个例子为这样的:
CREATE TABLE t (a, b, c) AS (SELECT * FROM atable) WITH DATA
Run Code Online (Sandbox Code Playgroud)
HSQLDB需要在 select 周围加上括号(与所有其他 DBMS 不同),它还需要WITH DATA子句