Thanks for the sample tables and data. It would help if you also gave us what you wanted for the result. But I think you are looking for
;With cte As
(Select lct.Scheme, lct.ProductName, lct.BINNumber,
ct.TransactionTime, ct.CardNumber, ct.TransactionAmount,
Row_Number() Over(Partition By ct.CardNumber Order By Len(lct.BINNumber) Desc) As rn
From LookupCardType lct
Inner Join CardTransactions ct On CharIndex(lct.BINNumber, ct.CardNumber) > 0)
Select Scheme, ProductName, BINNumber, TransactionTime, CardNumber, TransactionAmount
From cte
Where rn = 1;
Tom