select a.pk_freevalue, b.freevalueid
from bjh_subjamount_tmp b,
(select pk_freevalue, trim(valuecode) as valuecode, subsys
from bjh_freevalue
where freetype = '00') a
where a.valuecode(+) = b.freevalueid
-- and a.subsys (+)= b.subsys
and b.freevalueid is not null
and b.subsys = 'CW'
and b.period = '201105';最近我在一段源码中看到这样一段SQL,我不理解 and a.subsys (+)= b.subsys
他加上这句代码有什么用?
from bjh_subjamount_tmp b,
(select pk_freevalue, trim(valuecode) as valuecode, subsys
from bjh_freevalue
where freetype = '00') a
where a.valuecode(+) = b.freevalueid
-- and a.subsys (+)= b.subsys
and b.freevalueid is not null
and b.subsys = 'CW'
and b.period = '201105';最近我在一段源码中看到这样一段SQL,我不理解 and a.subsys (+)= b.subsys
他加上这句代码有什么用?
解决方案 »
- 类似与WMSYS.WM_CONCAT函数的方法
- 用toad导入导出数据出错,帮忙看看,在线等..
- sqlloader导数据时,出现原数据文件中的记录顺序颠倒了!
- Oracle优化相关,请高手进!
- (讨论)主键的名字该如何定义才好?
- 新手写了个触发器,编译有错误,求指点下,万分感激!
- 用imp 和 exp 遇到的问题
- 超大数据,怎么查询???急!!!
- 正版的ORACLE8i的盘,现在在任何机子上安装不上,以前用该盘装过ORACLE,不是盘的问题,我试了几个ORACLE的盘在几个不同的机子上,都安装
- 急!!!求助!!ogg问题! 源端和目标端 7809端口建立不上
- 求个sql,获取10分钟内唯一的数据
- 怎么输入conn / as sysdba就登录数据库了?密码呢?
则每个字段条件都要使用相应的+号。你上面的右连接表示,如果b中的记录根据条件在a中没有找到对应的记录,则也会查询出来;
也可使用 a right join b on (a.valuecode = b.freevalueid and a.subsys= b.subsys) where ...
a.subsys (+)= b.subsys以b表中是数据为基准