我有一个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';
答案 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。因此确切的语法可能会略有不同。