我想从SELECT
语句中获得结果表,然后将其移动到物理文件中。
我希望使用(根据W3Schools):
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
不幸的是,根据IBM手册(DB2 for i SQL参考)
SELECT INTO
语句生成了一个结果表,结果表由最多一行组成,并将该行中的值赋给变量。
所以我想也许我可以用:
INSERT
语句在表或视图中插入行这个语句有三种形式:
1.INSERT
using fullselect表单用于使用来自其他表或视图的值将一行或多行插入到表或视图中。
不幸的是,它似乎对我不起作用。
INSERT INTO <tablename>
FROM ( SELECT (*) FROM <querytableA>
UNION
SELECT (*) FROM <querytableB>)
我能够将结果表移动到物理文件中,但要做到这一点,我必须声明一个游标,然后使用do … while
写入物理文件,一次一个记录。我认为这个既丑陋又不优雅,并希望能够使用SELECT INTO
或INSERT INTO
语句。
请帮我用一个优雅的语句将结果表"转储"到一个物理文件中。
OS: IBM i v6.1
数据库:DB2
如果您想自动创建表,您还可以使用以下表单:
CREATE TABLE new_table_name
AS (SELECT * FROM <querytableA>
UNION SELECT * FROM <querytableB>) WITH DATA
注意,您可以在查询上创建一个视图,以便根据需要动态构建结果集。然后可以从任何HLL作为逻辑文件引用该视图:
CREATE VIEW new_table_name
AS SELECT * FROM <querytableA>
UNION SELECT * FROM <querytableB>
正确语法如下:
INSERT INTO <dest_table>
Select * FROM <querytableA>
UNION
Select * FROM <querytableB>
要使其工作,<dest_table>
必须已经存在并且具有与<querytableA>
和<querytableB>
中的列兼容的列。
参见"使用select语句插入行"获取更多信息。