在SQL中选择不同的值对

Swa*_*amy 4 sql ms-access ms-access-2010

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

|source           |   destination|
|--------------------------------|
|  A              |     B        |
|  B              |     A        |
|  A              |     B        |
|  C              |     D        |
|  D              |     D        |

有任何查询可以选择唯一对吗?也就是说,查询的输出应该是

|source           |     destination|
|----------------------------------|
|  A              |          B     |
|  C              |          D     |

Gor*_*son 7

你的问题似乎意味着两件事:

  1. 列出源/目的地对时,您只想在一个方向上看到对,例如,(A,B)但不是(B,A).

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

在那种情况下查询......

SELECT DISTINCT source, destination
FROM
    (
            SELECT source, destination
            FROM SomeTable
        UNION ALL
            SELECT destination, source
            FROM SomeTable
    )
WHERE source < destination
Run Code Online (Sandbox Code Playgroud)

...当针对包含......的[SomeTable]运行时...

source  destination
------  -----------
A       B          
B       A          
A       B          
C       D          
D       D          
E       D          
Run Code Online (Sandbox Code Playgroud)

......会产生:

source  destination
------  -----------
A       B          
C       D          
D       E          
Run Code Online (Sandbox Code Playgroud)