日期:2014-05-17 浏览次数:20845 次
select * from ccc.BOND_CODE_CONT b left join (select * from ccc.BOND_RATE_CHAN where cur_inte_start_date <= sysdate and cur_inte_end_date >= sysdate) c on b.bond_uni_code = c.bond_uni_code where 1=1;
------解决方案--------------------
举个简单的例子
tab1
id name
1 jack
2 kate
3 lock
tab2
name value
jack 2
kate 3
select * from tab1 left join tab2 on(tab1.name=tab2.name and tabl2.value=2);
这个语句得到的结果集是3条
select * from tab1 left join tab2 on(tab1.name=tab2.name) where tabl2.value=2;
下面的语句得到的结果就只有1条了
------解决方案--------------------
我是个Oracle的新手,最近刚刚开始学习Oracle,不过我更赞同1楼的朋友观点
------解决方案--------------------
第二条SQL,增加两个(+),结果就和第一条一样了,不信你试试。
select *
from ccc.BOND_CODE_CONT b, ccc.BOND_RATE_CHAN c
where b.bond_uni_code = c.bond_uni_code(+) and
c.cur_inte_start_date(+) <= sysdate and c.cur_inte_end_date(+) >= sysdate;