db2 - 查询结果为新 table

db2 - Query result to new table

大家好,我需要用我的查询结果填充 table,例如....

SELECT FIELD1, FIELD2, X FROM OLDTABLE WHERE X=Y 

我是一名Java开发者,我的朋友们,AS400的RPG开发者。当他们执行查询时,可以选择将查询结果保存在文件中

选项叫SELECT输出可以选择1显示2打印机3文件

可以直接从查询中做到这一点吗?或者是本机 iSeries 选项?

查询将提示您替换现有的 table。直接 SQL 不会提示替换现有的 table 所以你有两种情况(见注释)。

如果输出table不存在,你只需要

create table newtable as (select <...> from oldtable) with data

如果输出 table 已经存在,您只需要一个带有子 select 的插入。

Insert into newtable
Select <...>  from oldtable

注意
随着 2015 年 5 月 v7.1 的 TR10 和 v7.2 的 TR2 的发布,IBM 在 CREATE TABLE 语句中添加了对 OR REPLACE 子句的支持。因此,如果您恰好在这些 TR 或更高级别,您可以简单地使用:

create or replace table newtable as (select <...> from oldtable) with data

创建 table 系列 sql

用数据创建 table。

create table abc as (select x,y,z from sometable where x=y) with data

创建一个空 table.

create table abc as (select x,y,z from sometable where x=y) data definition only

仅使用 sql 没有输出到打印机。

可以将 SQL 编译成查询管理器查询 (CRTQMQRY),然后 运行 通过 (STRQMQRY) 查询。

为此,将查询放入成员类型为 TXT 的某种源文件中。进入命令行并 运行 CRTQMQRY 命令并创建输出 QMQRY。系统会提示 STRQMQRY,您可以将结果保存在输出文件或打印输出中,或者以交互方式查看。如果您将其作为批处理作业提交,以交互方式查看输出将不会很好。