我想从 SELECT
语句中获取结果表,然后将其移动到物理文件中。
我希望使用(根据 W3Schools ):
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
不幸的是,根据 IBM 手册(DB2 for i SQL 引用)
The
SELECT INTO
statement produces a result table consisting of at most one row, and assigns the values in that row to variables.
所以我想也许我可以使用:
The
INSERT
statement inserts rows into a table or view There are three forms of this statement:
1. TheINSERT
using fullselect form is used to insert one or more rows into the table or view using values from other tables or views.
不幸的是,它似乎对我不起作用。
INSERT INTO <tablename>
FROM ( SELECT (*) FROM <querytableA>
UNION
SELECT (*) FROM <querytableB>)
我能够将结果表移动到物理文件中,但要做到这一点,我必须声明一个游标,然后使用
do … while
写入物理文件,一次一条记录。我认为这个 丑陋和不优雅的 并且希望能够使用 SELECT INTO
或 INSERT INTO
语句。请帮我用一个优雅的语句将结果表“转储”到一个物理文件中。
操作系统:IBM i v6.1
数据库:DB2
最佳答案
如果要自动创建表,还可以使用以下形式:
CREATE TABLE new_table_name
AS (SELECT * FROM <querytableA>
UNION SELECT * FROM <querytableB>) WITH DATA
请注意,您可以在查询上创建 View 以根据需要动态构建结果集。然后可以从任何 HLL 作为逻辑文件引用该 View :
CREATE VIEW new_table_name
AS SELECT * FROM <querytableA>
UNION SELECT * FROM <querytableB>
关于sql - 如何将 DB2 SQL 结果表移动到物理文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111247/