2015-02-12 50 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