【发布时间】:2013-11-01 06:18:10
【问题描述】:
抱歉,如果这个问题之前已经回答过了。我打猎了,但没有找到。
问题:
我使用的是 SQL Server 2012,我有两个表(TableA 和 TableB),如下所示
表 A
+-------+--------+
| ItemA | SeqNoA |
+-------+--------+
| D | 1 |
| A | 0 |
| Z | 0 |
| B | 4 |
| A | 0 |
| K | 6 |
+-------+--------+
表B
+-------+--------+
| ItemB | SeqNoB |
+-------+--------+
| A | 1 |
| D | 2 |
| C | 3 |
| A | 4 |
| B | 5 |
| J | 6 |
+-------+--------+
TableA 在 col SeqNo 的某些行中缺少(零)值,而在 TableB 的 col SeqNo 中存在相同的值。我需要找到某种方法来加入这些表,以便最终得到以下给定值。这个连接既可以是某种连接查询,也可以是基于这两个表创建一个全新的表
+-------+--------+-------+
| ItemA | SeqNoA | ItemB |
+-------+--------+-------+
| D | 1 | A |
| A | 2 | D |
| Z | 3 | C |
| B | 4 | A |
| A | 5 | B |
| K | 6 | J |
+-------+--------+-------+
【问题讨论】:
-
什么是将TableB中的D连接到TableA中的A?
-
Seqno 列应该是两个表之间的公因子,但是由于某些软件错误,该列缺少 TableA 中的一些条目
-
如果您要交换 TableA 中的第 2 行和第 3 行,您会期望结果在您的最终表中发生变化吗?如果是:那么你有一个真正的问题。一般来说,顺序不会保存在数据库中,所以这两种情况是无法区分的,所以不应该给你不同的结果。如果不是:那么这些行应该按照什么标准匹配?
标签: sql join sql-server-2012 records