在具有id和空格的列混合上加入两个表

时间:2013-05-21 09:25:25

标签: sql sql-server-2008 join

如何在SQL Server 2008R2中编写SQL语句以在具有空格的列上连接两个表? 我收到错误“将数据类型varchar转换为数字时出错。”

e.g。表1

[id | value | t2id]
  1 |   a   |  1
  2 |   b   |  
  3 |   c   |  2

表2

[id | value]
  1 |   d
  2 |   e
  3 |   f

结果

[id | value | t2id | id | value]
  1 |   a   |  1   |  1 |   d
  2 |   b   |      |null| null
  3 |   c   |  2   |  2 |   e

它是一个左连接,用于显示Table1中的所有值,但t2id列具有Table2和空格中的ID。直接加入这两个表给了我上面的错误。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下查询 -

SELECT *
  FROM Table1, Table2
 WHERE Table1.T2id = Table2.Id
   AND Table1.T2id IS NOT NULL
UNION
SELECT Table1.*, NULL, NULL FROM Table1 WHERE Table1.T2id IS NULL