Sql server 2008 外部联接内的MSSQL操作

Sql server 2008 外部联接内的MSSQL操作,sql-server-2008,join,operators,Sql Server 2008,Join,Operators,我尝试使用唯一值连接两个表,但是在一个表中,它是具有不同长度的字段的一部分,例如: 表一: 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

我尝试使用唯一值连接两个表,但是在一个表中,它是具有不同长度的字段的一部分,例如:

表一:

       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
但是,它声称无法识别联接中的表达式
Table1.Block\u Run\u No
。有人能帮我吗

谢谢

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抱怨说,除非删除表1.Block\u Run\u No,否则无法绑定它,当然还有红色下划线
FULL

Awww。我辛苦了好几个小时,没有找到那个愚蠢的逗号。。谢谢