JOIN sql上的concat 2列值

Mar*_*tin 2 sql t-sql sql-server join

Table One


ID  Code    Amount
1   2       100
2   2       200


Table Two

ID  Key     Description
1   12      Bag
2   22      Cap
Run Code Online (Sandbox Code Playgroud)

我想加入选择两个表来连接一个表的2列.在表格中说我想在t1.id + t1时加入它们.code = t2.key.在图形我想22 = 22还是12 = 12其中22 or 21的第一面是t1.id+t1.code

查询:

Select * 
from table1 AS t1 INNER JOIN table2 AS t2 ON (t1.id +""+ t1.code)= t2.key
Run Code Online (Sandbox Code Playgroud)

错误:

消息1038,级别15,状态4,行1对象或列名称缺失或为空.对于SELECT INTO语句,请验证每列是否具有名称.对于其他语句,请查找空别名.不允许使用定义为""或[]的别名.将别名更改为有效名称.

Luk*_*zda 5

你应该使用''空字符串:

Select * 
from table1 AS t1 
INNER JOIN table2 AS t2 ON (t1.id +''+ t1.code)= t2.[key]
-- key is reserved keyword so you need to quote it
Run Code Online (Sandbox Code Playgroud)

或者CONCAT:

Select * 
from table1 AS t1 
INNER JOIN table2 AS t2 ON CONCAT(t1.id, t1.code)= t2.[key];
Run Code Online (Sandbox Code Playgroud)

Rextester演示

如果列是INT你还需要扮演他们喜欢:CAST(t1.id AS VARCHAR(10)).

请注意,您的加入效果不佳.