sql join int varchar

Pet*_*ete 4 sql int varchar inner-join

我一直在寻找问题,但还没找到答案.我想用表1和表2进行内连接,但是一个字段是INT而另一个字段是VARCHAR(结构为"A-INT").就像是:

    Table1                    Table2

    ID NAME   WHATEVER        ID USER
    1  A-001  ---             1  001 
    2  A-002  ---             2  002
    3  A-003  ---             3  003
    3  A-004  ---             4  004  
    ...
Run Code Online (Sandbox Code Playgroud)

我该如何构造查询?就像是:

... Table1 INNER JOIN Table2 ON Table1.NAME = Table2.[A-USER] ...
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 9

您需要将int值转换为varchar并与之连接'A-',或者获取varchar值的数字部分并转换为int.

根据您使用的数据库,这有点不同,对于SQL Server,它看起来像这样:

select t1.ID, t1.WHATEVER, t2.USER
from Table1 t1
inner join Table2 t2 on t2.ID = cast(substring(t1.NAME, 3, 3) as int)
Run Code Online (Sandbox Code Playgroud)