sybase的外连接

跟oracle的有不少区别.


今天做了一下实验,发现sybase的外连接跟oracle的大不一样.

还是没有能够吃透sybase.

Oracle 8.1.7下:

drop table GK_ZJZFSQ_DETAIL
/
create table GK_ZJZFSQ_DETAIL
(
GK_ZFPZ_ID int not null
)
/

insert into GK_ZJZFSQ_DETAIL
values(76)
/
insert into GK_ZJZFSQ_DETAIL
values(0)
/

drop table GK_SQZFPZ
/
create table GK_SQZFPZ (
GK_ZFPZ_ID int not null,
CHECK_STATUS varchar(2) default '0' null
)
/
insert into GK_SQZFPZ values(76,'3')
/

commit
/

执行的sql:

select t1.GK_ZFPZ_ID,t3.CHECK_STATUS
from GK_ZJZFSQ_DETAIL t1,GK_SQZFPZ t3
where t1.GK_ZFPZ_ID = t3.GK_ZFPZ_ID(+)
/


select t1.GK_ZFPZ_ID,t3.CHECK_STATUS
from GK_ZJZFSQ_DETAIL t1,GK_SQZFPZ t3
where t1.GK_ZFPZ_ID = t3.GK_ZFPZ_ID(+)
and nvl(t3.CHECK_STATUS,'0') not in ('2','3')
/

结果集分别是:

GK_ZFPZ_ID CH
---------- --
0
76 3

GK_ZFPZ_ID CH
---------- --
0

而在sybase下
select t1.GK_ZFPZ_ID,t3.CHECK_STATUS
from GK_ZJZFSQ_DETAIL t1,GK_SQZFPZ t3
where t1.GK_ZFPZ_ID *= t3.GK_ZFPZ_ID
go

select t1.GK_ZFPZ_ID,t3.CHECK_STATUS
from GK_ZJZFSQ_DETAIL t1,GK_SQZFPZ t3
where t1.GK_ZFPZ_ID *= t3.GK_ZFPZ_ID
and isnull(t3.CHECK_STATUS,'0') not in ('2','3')
go

的结果集分别是:

76 3
0 null

76 null
0 null

大不一样.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-21933/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/6906/viewspace-21933/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值