内部联接以合并两个字段

时间:2018-10-23 14:51:02

标签: sql select inner-join combinations advantage-database-server

我有一个select语句,我想为其使用内部联接,并且在我别名为C的表中,有两个字段,traineeid和pot。我希望我的一个联接等于两个字段的组合,并用下划线将它们分开,但是显然+是无效的。我可能做错了什么?在Advantage Arc中执行此操作。

select *
from trainee t inner join epidata e on (t.ident=e.ident)
               inner join [..\_control\pics.add]._contract c on 
(e.othersys_id=c.traineeid+'_'+c.pot)
where c.contractorid='1147-0001-113';

1 个答案:

答案 0 :(得分:0)

问题可能是由于其中一个操作数是数字,因此运算符被解释为加法运算而不是字符串连接运算。如果是这样,请使用显式转换:

select *
from trainee t inner join
     epidata e
     on t.ident = e.ident inner join
     [..\_control\pics.add]._contract c
     on e.othersys_id = cast(c.traineeid as varchar(255)) + '_' + cast(c.pot as varchar(255))
where c.contractorid = '1147-0001-113';

我不知道Advantage Arc SQL。因此确切的语法可能会略有不同。