我对SQL很新。对于很多人来说,这是一个我很确定的操作。我试图在同一服务器上的数据库中连接两个表 - dbB和dbA,以及TableA
(带有IdA)和TableB
(带有IdB)。但在此之前,我想将列IdA
转换为数字,我想从其值中删除“:XYZ”字符,并为dbA中的另一列添加where语句。下面我展示了我的连接代码,但我不知道如何转换列的值。这样我就可以在联接中将idA
与idB
匹配。非常感谢。
Select replace(idA, “:XYZ”, "")
from dbA.TableA guid
where event like “%2015”
left join dbB.TableB own
on guid.idA = own.idB
答案 0 :(得分:4)
很少有事情
SELECT guild.*, own.*
FROM dbA.TableA guid
LEFT JOIN dbB.TableB own
on cast(trim(replace(guid.idA, ':XYZ', '')) as int) = own.idB
WHERE guid.event like '%2015'
或者首先使用子查询来实现转换,以便在连接之前将IDA置于其转换状态(如代数()的内容并从里到外处理)
SELECT *
FROM (SELECT cast(trim(replace(guid.idA, ':XYZ', '')) as int) as idA
FROM dbA.TableA guid
WHERE guid.event like '%2015') B
LEFT JOIN dbB.TableB own
on B.IDA = own.idB