【发布时间】:2017-02-13 14:29:41
【问题描述】:
我的目标是在 SQL 中合并两个表,其中每个表都很复杂,并且必须使用with table as alias 语法定义自己的公共表表达式。
所以我们有了第一个表,语法如下:
with table1 as (
select/from/where statement),
table2 as (
select/from where statement),
select table1 join table2 on [...]
还有第二个表,语法类似:
with table3 as (
select/from/where statement),
table4 as (
select/from where statement),
select table3 join table4 on [...]
我的问题是:简单地将union 放在这两个表之间并不能解决问题。编译器将上面两个表之间的union 视为不正确的表达式。
(我的替代方法是将整个第一个表定义为 table5 并将整个第二个表定义为 table6 以在之后将它们合并失败,因为您似乎无法将多个“with as”语句堆叠在一起。)
【问题讨论】:
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
Tab Alleman 的解决方案解决了这个问题。
-
那么您应该接受该答案以将此问题标记为已解决
标签: sql union common-table-expression