两表用(+)联接的时候,有空值的记录能不能查询出来? 我的实际查询是这样的,A表是一句查询语句查出一个类似A表这样的结果然后再联接查询,A中的type_id为空值的记录就不被列出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样就可以呀,我刚才试了:select count(*) from A,B where A.type_id=B.type_id(+);看下: to: doer_ljy(可战) 子查询出来确实是会有type_id为空的这样的记录,(是子查询出来的,我不清楚是null还是空)最后不被列出来。 是最后select A.type_id, B.type ,A.value from A,B where A.type_id=B.type_id(+); 不列出来 SQL> select * from a; VALUE VALUE_DATE ID---------- ----------- ---------- 10 2004-1-7 18 1 10 2004-1-7 18 2 10 2004-1-7 18 3 20 2004-1-7 18 SQL> select * from b;ID TYPE---------- ----------1 aa2 bbSQL> select a.id,value_date from a,b where a.id=b.id(+);ID VALUE_DATE---------- -----------1 2004-1-7 182 2004-1-7 183 2004-1-7 18 2004-1-7 18测试正确 你把一个子查询结果集生成一个临时表好了!就是select 字段 into 临时表A 发from 表!再用select A.type_id, B.type ,A.value from A,B where A.type_id=B.type_id(+); 执行结果在哪儿? 请问如何判断表类型的变量是否存在记录? ORACLE 数据库备份的问题 Oracle项目开发时用户权限分配 每天都要做的imp问题 tnsping的问题! 数据文件损坏,并且没有被封,如何修复? 执行一个存储过程会造成连接数满吗? oracle case的写法 推荐一本你认为最好的oracle书籍? (先100,不够再加)向高手诚心请教刷新组和队列的问题 Oracle中有类似SQL SERVER 的 UNION 语法吗?
select count(*) from A,B where A.type_id=B.type_id(+);
看下:
最后不被列出来。
---------- ----------- ----------
10 2004-1-7 18 1
10 2004-1-7 18 2
10 2004-1-7 18 3
20 2004-1-7 18 SQL> select * from b;ID TYPE
---------- ----------
1 aa
2 bbSQL> select a.id,value_date from a,b where a.id=b.id(+);ID VALUE_DATE
---------- -----------
1 2004-1-7 18
2 2004-1-7 18
3 2004-1-7 18
2004-1-7 18测试正确
再用select A.type_id, B.type ,A.value from A,B where A.type_id=B.type_id(+);