【问题标题】:Join two tables on a column mix with ids and space使用 ids 和空格加入列上的两个表
【发布时间】:2013-05-21 09:25:25
【问题描述】:

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

例如表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 和空格。直接加入这两个表给了我上面的错误。

谢谢

【问题讨论】:

标签: sql sql-server-2008 join


【解决方案1】:

您可以使用以下查询 -

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

【讨论】:

  • 感谢 JW 提供的示例,该示例不起作用sqlfiddle.com/#!3/871e8/1
  • @user1589188 我想你错误地在我的帖子中回复而不是回复问题评论空间
猜你喜欢
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多