我正在尝试使用唯一值连接两个表,但是在一个表中它是具有不同长度的字段的一部分,例如:
表一:
Block_Run_No Vehicle_No
200001.412.20110104 1001
20002.412.20110104 1002
表2
Block_No Departure
200001 3600
20002 7200
现在我想通过Block_No加入他们并试试这个:
SELECT Block_No, Vehicle_No, Departure
FROM Table1,
FULL OUTER JOIN Table2 A on LEFT(Table1.Block_Run_No,CHARINDEX('.',Table1.Block_Run_No)-1) = A.Block_No
但是,它声称无法识别JOIN中的表达式Table1.Block_Run_No
。有人可以帮帮我吗?
谢谢!
答案 0 :(得分:1)
WITH Table1( Block_Run_No,Vehicle_No) AS
(
SELECT '200001.412.20110104', 1001 UNION ALL
SELECT '20002.412.20110104', 1002
),Table2(Block_No, Departure) AS
(
SELECT 200001,3600 UNION ALL
SELECT 20002,7200
)
SELECT Block_No, Vehicle_No, Departure
FROM Table1
FULL OUTER JOIN Table2 A on
LEFT(Table1.Block_Run_No,CHARINDEX('.',Table1.Block_Run_No)-1) = A.Block_No
对我来说很好。你这里有一个流氓逗号
FROM Table1, FULL OUTER JOIN
也许这是投诉的来源? (Intellisense抱怨Table1.Block_Run_No
在删除之前无法绑定,但红色下划线FULL
)