【发布时间】:2021-10-07 09:13:04
【问题描述】:
我想知道两个表'table1'和'table2'是否相同。 我知道我可以比较“where”子句中两个表的每一列 所以这基本上会告诉我每一行都是相同的。
但我想知道哪些列是相同的。因此,我认为只转换表格并比较前面提到的结果会很容易。表中的列名和顺序与已经给出的相同。 我还做了一个示例输入和输出场景:
-------输入--------------- 表1
| id | col1 | col2 | col3 |
|---|---|---|---|
| 1 | 14 | 23 | 45 |
| 2 | 12 | 21 | 43 |
| 3 | 12 | 22 | 43 |
| 4 | 10 | 12 | 41 |
| 5 | 11 | 23 | 44 |
| 6 | 13 | 25 | 43 |
表2
| id | col1 | col2 | col3 |
|---|---|---|---|
| 1 | 14 | 20 | 45 |
| 2 | 12 | 0 | 43 |
| 3 | 12 | 22 | 43 |
| 4 | 10 | 30 | 41 |
| 5 | 11 | 23 | 44 |
| 6 | 13 | 43 |
---------输出----
结果
| col2 |
|---|
| 20 |
| 0 |
| 22 |
| 30 |
| 23 |
或结果
| ??? | ??? | ??? | ??? | ??? | ??? | ??? |
|---|---|---|---|---|---|---|
| col2 | 20 | 0 | 22 | 30 | 23 |
或结果
| col2 |
|---|
或结果
| table1.col2 | table2.col2 |
|---|---|
| 23 | 20 |
| 21 | 0 |
| 22 | 22 |
| 12 | 30 |
| 23 | 23 |
| 25 |
或类似的..... 不同列的值无关紧要,我只需要列名,但我不在乎值是否会随之而来。我希望它不会太难。
【问题讨论】:
-
结果集当然不能每行包含不同的列,您想要的结果仅包含您已经知道存在差异的列,那么如果 table1 的 col1 具有不同的值呢?
-
请检查您的示例 - 它与描述的预期结果不符。您编写了“仅相同的列”,但您希望输出值为 20 的 Col2 - 它仅包含在第二个表中,并且此 Col2 在两个表中并不相同。
-
我想知道每个值与另一列的每个值对应的列,这就是我所说的相同列。如果我知道不相同的,我当然也知道相同的,所以它是相同的,我不在乎它们中的哪一个。此外,无论有无值,列的显示方式也无关紧要。
标签: sql-server datatables compare