小编典典

在SQL中选择不同的值对

sql

我有一个Access 2010数据库,其中存储源计算机和目标计算机的IP地址。如果我的数据库中有以下条目

|来源| 目的地|
| -------------------------------- |
| A | B |
| B | A |
| A | B |
| C | D |
| D | D |

是否有任何查询来选择唯一对?也就是说,查询的输出应为

|来源| 目的地|
| ---------------------------------- |
| A | B |
| C | D |

阅读 206

收藏
2021-03-23

共1个答案

小编典典

您的问题似乎暗示两件事:

  1. 列出源/目标对时,您只想查看一个方向上的对,例如(A,B),而不是(B,A)。

  2. 该列表应省略源和目标相同的对,例如(D,D)

在这种情况下,查询…

SELECT DISTINCT source, destination
FROM
    (
            SELECT source, destination
            FROM SomeTable
        UNION ALL
            SELECT destination, source
            FROM SomeTable
    )
WHERE source < destination

…针对包含…的[SomeTable]运行时

source  destination
------  -----------
A       B          
B       A          
A       B          
C       D          
D       D          
E       D

…将产生:

source  destination
------  -----------
A       B          
C       D          
D       E
2021-03-23