SQL - 以混乱的顺序匹配具有相同值集的类似记录

时间:2015-02-12 08:38:23

标签: sql sqlite

假设我在三列中有一个包含以下值的表

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

我想要一个查询,将第一个和第三个记录识别为相似,只选择第一个和第二个记录,然后将第三个记录保留。当值的顺序​​相同时,我可以很容易地做到这一点,但是我很难找到能够在这样的任意顺序中辨别出相似性的东西。有什么想法吗?

[为清晰起见编辑 - 这是一个有三列的表格]

1 个答案:

答案 0 :(得分: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