我对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发布于 2017-07-06 19:31:09
很少的事情
。
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.idBhttps://stackoverflow.com/questions/44957344
复制相似问题