如何在mssql中比较两个不同列的相反方向

时间:2013-10-14 17:02:57

标签: sql sql-server

我有一个结果集,它是一个关系表。我正在将他们的数据从一个模式转换为另一个模式关系表作为每个人的关系行。所以例如 如果bill知道bob,则有一行具有contactid和contactid1。

康泰克提是这段关系中的主要人物。在他们的系统中,Bob需要有一个单独的行,他是主要的。

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

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

在我的架构中,关系看起来像这样

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

试试这个

select distinct
    case when contactID<contactID1 then contactID else contactID1 end , 
    case when contactID<contactID1 then contactID1 else contactID end ,
    description
from yourtable
但是,我认为,这两种设计都是错误的,应该进行规范化。