Sql语句左连接问题!(字符窜关联)!高手进!
select * from AA inner join BB on (convert(varchar(2000),AA.Tid))=BB.TopTids
Tid 是一个int 类型(1001)
TopTIds是个字符窜组(1001、1002、1003)是用、拼接起来的!
请问大家怎么改怎么能不会出现重复 或者可以关联!
charindex(convert(varchar(2000), dbo.Finance_Refund.Tid),dbo.Sales_Order.TopTids,0) > 0
用charindex函数可以关联 但是 这个关联的出现了3个重复数据
[解决办法]
charindex('、'+convert(varchar(2000), dbo.Finance_Refund.Tid)+'、','、'+dbo.Sales_Order.TopTids+'、') > 0 --引号里的是你的分隔符
[解决办法]
select * from AA inner join BB on CHARINDEX('、' + RTRIM(AA.Tid) + '、','、' + BB.TopTids + '、') > 0
[解决办法]
--trySELECT *FROM Finance_RefundWHERE EXISTS ( SELECT 1 FROM Sales_Orderwhere WHERE CHARINDEX(',' + LTRIM(Finance_Refund.Tid) + ',', ',' + LTRIM(Sales_Order.TopTids) + ',') > 0 )
[解决办法]
--trySELECT *FROM Finance_RefundWHERE EXISTS ( SELECT 1 FROM Sales_Orderwhere WHERE CHARINDEX('、' + LTRIM(Finance_Refund.Tid) + '、', '、' + LTRIM(Sales_Order.TopTids) + '、') > 0 )
[解决办法]
declare @AA table(id int,Tid int)insert into @AAselect 1,1001 declare @BB table(id int,TopTids varchar(20))insert into @BBselect 1, '1001、1002、1003' union allselect 2, '1002、1003' select * from @AA AA inner join @BB BB on CHARINDEX('、' + RTRIM(AA.Tid) + '、','、' + BB.TopTids + '、') > 0/*id Tid id TopTids1 1001 1 1001、1002、1003*/