sql join int varchar

时间:2012-10-09 07:19:38

标签: sql int inner-join varchar

我一直在搜索问题,但还没有找到答案。我想用表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  
    ...

如何构建查询?类似的东西:

... Table1 INNER JOIN Table2 ON Table1.NAME = Table2.[A-USER] ...

3 个答案:

答案 0 :(得分:9)

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

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

int

答案 1 :(得分:0)

尝试连接,

SELECT *
FROM Table1 a, Table2 b
WHERE a.Name = 'A-' + b.User

但请注意,这会降低性能。

答案 2 :(得分:-3)

你想在Table1.NAME = Table2。[A-USER]。

上做内连接

如果Table1.NAME,Table2。[A-USER]列数据类型不同意味着,则无法使用内连接。