您需要添加通配符,例如在sqlserver中%
使用通配符LIKE
,否则,它本质上成为对是否相等(=
)的检查。这是您使用通配符的查询:
SELECT *
FROM t1
INNER JOIN t2
ON [t1].[LOCATION_CODE_DESC] Like '%' + [t2].[DMT Bank Name]+ '%'
AND [T1].[LOCATION_CG_LOC_LEGACY_ID] Like '%' + CONVERT(varchar(50),[t2].[5 Digit Code] )+ '%';
这是一个小提琴:http ://sqlfiddle.com/#!3/dc2b9/10/0
您还需要转换为int
为varchar
某种兼容的。
但是请注意,join
对大型数据集执行“按赞”操作(??尤其是使用转换)将导致非常差的性能。
当您将int转换为字符串并使用不同的通配符时,MS Access将有所不同。我没有安装访问权限,因此无法测试,但是我认为您的MS Access查询如下所示:
SELECT *
FROM t1
INNER JOIN t2
ON [t1].[LOCATION_CODE_DESC] Like '*' & [t2].[DMT Bank Name] & '*'
AND [T1].[LOCATION_CG_LOC_LEGACY_ID] Like '*' & CStr( [t2].[5 Digit Code] ) & '*';