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