如何交叉5个不属于同一个表的sql查询,并且每个查询都有数百万个数据作为输出



如何相交5 SQL查询不属于同一个表,并有数百万的数据作为输出每个查询?

我想找出所有五个查询输出中存在的数据。

您可以交叉它们,正如您所说的(所有语句必须具有相同数量的列,并且它们必须在数据类型上匹配),例如

SQL> select empno, ename from emp
2  intersect
3  select deptno, loc  from dept;
no rows selected
SQL>

或者,您可以将每个查询用作CTE,然后将它们连接起来(结果将返回匹配的行):

SQL> with
2  q1 (valn, valc) as
3    (select empno, ename from emp),
4  q2 (valn, valc) as
5    (select deptno, loc  from dept)
6  --
7  select a.valn
8  from q1 a join q2 b on a.valn = b.valn and a.valc = b.valc;
no rows selected
SQL>

百万行?我想可能需要一些时间才能得到结果。

最新更新