急,(+)在Oracle->SyBase的移值 (50分)

  • 主题发起人 主题发起人 silverwolf
  • 开始时间 开始时间
S

silverwolf

Unregistered / Unconfirmed
GUEST, unregistred user!
Oracle中where PackType(+)=1
在SyBase 11下该如何实现?
 
where PackType*=1
 
lixijie ,SyBase 11下不行,我试过了。
 
严格来说你的语句是无效的,一般这种用法是关联两个表,
Oracle中使用(+)=,sybase中使用*=,SqlServer中使用left Join
而你的where PackType(+)=1按照你的想发肯定与不加此条件是一样的。
另外,在SyBase 11下使用*=是可以的。不过你在连接两个表是,不能循环*=
比如where a.F1 *= b.F11 and b.F2 *= a.F22就是错误的。
 
谢谢lixijie,的确在Oracle中当表where PackType(+)=1与Where PackType=1效果
是一样的,可是不知道为什么当多表连接后,会有一定的区别(我也说不清楚)。我
想问一下:你说的不能循环,假设一个表对应两个别名a,c
Where a.F1 *=b.F11 and b.F2 *=c.F22是否也是错误的?
 
我在我的数据库中试过了,下面的两种用发没有问题:
select a.yhh,b.cbkh,c.cbkh
from df_yhjbxx a,df_cbk b,df_xbgx c
where a.yhh = '02000001'
and a.yhh *= b.yhh
and a.yhh *= c.yhh

select a.yhh,b.cbkh,c.cbkh
from df_yhjbxx a,df_cbk b,df_xbgx c
where a.yhh = '02000001'
and a.yhh *= b.yhh
and b.cbkh *= c.cbkh
and b.yhh *= c.yhh

 
接受答案了.
 
后退
顶部