0

我有一个结果集,它是一个关系表。我正在将他们的数据从一种模式转换为另一种模式。有关系表作为每个人的关系行。例如,如果比尔知道鲍勃,则有一行包含contactid 和contactid1。

Contactid 是关系中的主要人员。在他们的系统中,鲍勃需要有一个单独的行,他是主要的。

所以他们数据库中的行看起来像这样

Contactid | Contactid1 | Description
123       | 456        |Gold Club Dinner
456       | 123        |Gold Club Dinner

而在我的模式中,关系看起来像这样

Contactid | Contactid1 | Description
123       | 456        |Gold Club Dinner

我需要知道一种方法来获得第一个数据库中每个组的前 1 个,这样我就不会在表结构中出现数千个重复项。

有任何想法吗?

4

1 回答 1

1

尝试这个

select distinct
    case when contactID<contactID1 then contactID else contactID1 end , 
    case when contactID<contactID1 then contactID1 else contactID end ,
    description
from yourtable

然而,我认为这两种设计都是错误的,应该标准化。

于 2013-10-14T17:20:12.530 回答