3

嗨,我对这个问题感到困惑,因为我需要同一列的两个实例的独特组合。

假设我有一个带有列名称的表 Animal。我想要动物名称的所有“独特”组合,而不是重复它本身或另一个已经存在的行。

样本数据:

Name
-------
Mouse
Cat
Dog

我想要的结果是:

Name1   Name2
-----   -----
Mouse   Cat
Mouse   Dog
Cat     Dog

我写了以下查询:

SELECT DISTINCT A1.name AS Name1, A2.name as Name2
FROM Animal A1, Animal A2
WHERE A1.name <> A2.name;

这让我得到了以下结果:

Name1  Name2
-----  -----
Mouse  Cat
Mouse  Dog
Cat    Mouse
Cat    Dog
Dog    Mouse
Dog    Cat

我希望我说得通。我不想要这两种组合的重复,无论它出现在左侧还是右侧。就“不同”而言,行是不同的。那么有没有什么办法可以消除双打呢?

4

1 回答 1

8

要查找独特的组合,只需更改<><

WHERE A1.name < A2.name;
             ^^^
于 2013-05-01T06:48:44.160 回答