关于多个子查询,其中一个为空,那所有数据都没有,该如何解决该问题select * from
(select f1 from t1 where ...) a1,
(select f1 from t1 where ...) a2,
(select f1 from t2 where ...) a3,
.....................如果a1没有记录,即使其他子查询也有数,那主查询也没数,我想不论子查询是否有没有数,只要别的子查询有记录,就可以获取,该如何解决呢?
(select f1 from t1 where ...) a1,
(select f1 from t1 where ...) a2,
(select f1 from t2 where ...) a3,
.....................如果a1没有记录,即使其他子查询也有数,那主查询也没数,我想不论子查询是否有没有数,只要别的子查询有记录,就可以获取,该如何解决呢?
解决方案 »
- oracle被一堆insert和update堵死
- 请教关于oracle分区表中,如何判断一条数据到底在哪个分区中?
- Oracle创建基于自定义函数的索引的问题
- nvarchar2字符变量赋值时出现的奇怪问题?
- 奇怪的JOB
- index 的更改,有没有办法把一个普通索引变成一个惟一值索引,
- 请教!多用户通过DBLINK访问远程数据库产生多SESSION的问题
- 在PL/SQL中怎样执行存储过程
- ADODB.Connection:未找到提供者。可能未被正确安装。。。。急啊??
- 数据库设计问题
- 大量的db file sequential read和log file sync等待事件,有何解决方法
- Oracle安装
如果说都有可能没有的话,就用多个union 两两关联查吧。
f1 rq
10 2016-10-13
f2 rq
20 2016-10-11select a1.f1,a1.f1-a2.f1 from
(select f1 from t1 where rq='2016-10-13') a1,
(select f1 from t1 where rq='2016-10-12') a212号这天没数据,结果主查询就没记录
我想实现即使12号没数据,但是13号的数据仍然可以获取,即得到10
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20SQL> select e.* from emp e where e.empno=7970;未选定行SQL> select e1.* from (select e.* from emp e where e.empno=7369) e1 left join
2 (select e.* from emp e where e.empno=7970) e2 on e1.empno=e2.empno; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
(select 10 f1,'2016-10-13' rq from dual
union all
select 20 f1,'2016-10-11' rq from dual
)
select a1.f1,a1.f1-a2.f1 from
(select f1 from t1 where rq='2016-10-13') a1
full join
(select f1 from t1 where rq='2016-10-12') a2
on 1=1
再参照楼上各位SQL,理解左连接后
请参考
http://bbs.csdn.net/topics/390152319