Oracle中union all小例

问题

想要将两个表中记录进行合并成一个表。
tableA中字段prov,city,ain,aout
tableB中字段prov.city,bin.bout
整合表tableC中字段prov,city,ain,aout.bin,bout

方案

使用union all:

CREATE TABLE tableC AS
SELECT A.PROV AS PROV,
       A.CITY AS CITY,
       A.IN   AS AIN,
       A.OUT  AS AOUT,
       0      AS BIN,
       0      AS BOUT
  FROM TABLEA A
UNION ALL
SELECT B.PROV AS PROV,
       B.CITY AS CITY,
       0      AS AIN,
       0      AS AOUT,
       B.IN   AS BIN,
       B.OUT  AS BOUT
  FROM TABLEB B

要注意的是,对于tableA中缺少的字段,要通过0来补充

TIPS

  • union all时,要保证顺序一致union all不会通过别名来调整顺序
  • 在对tableC进行查询时,要在分组后拿到SUM(ain)SUM(bin)不能同时为0的。
  • 通过HAVING SUM(ain) > 0 OR SUM(bin) > 0解决
    在HAVING语句中,可以使用ORAND操作
    分组前使用WHERE分组后使用HAVING
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容