假设我在三列中有一个包含以下值的表
John Smith, Edward Jones, 4
John Deer, Jane Deer, 2
Edward Jones, John Smith, 4
我想要一个查询,将第一个和第三个记录识别为相似,只选择第一个和第二个记录,然后将第三个记录保留。当值的顺序相同时,我可以很容易地做到这一点,但是我很难找到能够在这样的任意顺序中辨别出相似性的东西。有什么想法吗?
[为清晰起见编辑 - 这是一个有三列的表格]
答案 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