微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DB2 在脚本中间插入临时表

如何解决DB2 在脚本中间插入临时表

如果我有多个临时表,并且我想将数据插入其中一个,但随后继续创建更多临时表,有没有办法做到这一点,或者我是否需要分解我的查询

这是我想做的一个例子

WITH A AS (SELECT Column1,Column2,Column3 FROM SoMetable WHERE SomeConditionA),-- Inital Temp Table
B AS(SELECT Column1,Column3 FROM SoMetable WHERE SomeConditionB),--Second Temp Table
INSERT INTO A SELECT * FROM B --Insert Table B into Table A
C AS(...),--Derives From A
D AS(...),--Derives From C
E AS(...) --Derives From D
SELECT * FROM E --Final Select Statement

本质上我的问题是我不知道如何以一种允许我在之后继续创建更多临时表的方式编写插入。

谢谢!

解决方法

通用表表达式 (CTE),WITH A AS (SELECT...) 不是实际的临时表,您不能插入其中。

您似乎不需要 B,因为它与 A 中选择的列相同,只需 OR 条件

WITH A AS (SELECT Column1,Column2,Column3 
           FROM SomeTable 
          WHERE SomeConditionA 
             or SomeConditionB),C AS(...),--Derives From A
  D AS(...),--Derives From C
  E AS(...) --Derives From D
SELECT * FROM E --Final Select Statement

如果 B 需要选择其他列或从另一个表中选择,则 UNION ALL(如果重复项正常或不可能)或 UNION(删除任何重复行)结果。

WITH A AS (SELECT Column1,Column3 
           FROM SomeTable 
          WHERE SomeConditionA 
            UNION ALL
          SELECT Column4,Column5,Column6 
           FROM SomeTable 
          WHERE SomeConditionB),--Derives From C
  E AS(...) --Derives From D
SELECT * FROM E --Final Select Statement

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。