Table One
ID Code Amount
1 2 100
2 2 200
Table Two
ID Key Description
1 12 Bag
2 22 Cap
我想加入选择两个表来连接一个表的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
错误:
Msg 1038,Level 15,State 4,Line 1 对象或列名称缺失或为空。对于SELECT INTO语句,请验证每列是否具有名称。对于其他语句,请查找空别名。不允许使用定义为“”或[]的别名。将别名更改为有效名称。
答案 0 :(得分: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
或CONCAT
:
Select *
from table1 AS t1
INNER JOIN table2 AS t2 ON CONCAT(t1.id, t1.code)= t2.[key];
<强> Rextester Demo 强>
如果列为INT
,您还需要将其投射为:CAST(t1.id AS VARCHAR(10))
。
请注意,您的加入效果不佳。