2015-02-12 27 views
0

说我有具有以下值的表分三路SQL - 匹配与同一组值的类似记录在混乱的秩序

John Smith, Edward Jones, 4 
John Deer, Jane Deer, 2 
Edward Jones, John Smith, 4 

我想有识别第一和第三的记录作为查询类似的,只选择第一个和第二个记录并留下第三个记录。当值的顺序​​相同时,我可以很容易地做到这一点,但是当值以任意顺序排列时,我会遇到难以分辨相似性的东西。有任何想法吗?

[编辑为清楚 - 这是一个有三个列的表]

+0

那是一列还是几列? – jarlh 2015-02-12 08:39:40

+0

是什么让第一个和第三个记录相似?最后一列(第4号)? – BeNdErR 2015-02-12 08:39:49

+0

@BeNdErR我认为这是事实,它包含完全相同的值,但以不同的顺序 – DrCopyPaste 2015-02-12 08:43:25

回答

1

你应该能够使用case语句把名字列到一个一致的顺序。类似于

create table n(n1 varchar(20), n2 varchar(20), v int); 

insert into n select "john", "edward",4; 
insert into n select "john", "jane", 3; 
insert into n select "edward","john",4; 



select distinct 
    case when n1>n2 then n1 else n2 end n1, 
    case when n1>n2 then n2 else n1 end n2, 
    v 
from n 
相关问题