2013-06-03 1 views
1

У меня есть таблица, содержащая два столбца.Выберите 1 запись, где две записи имеют одинаковые значения в разных столбцах

Table snap

в первых двух строках значения для столбцов отмененных, как бы я выбрать одну запись для каждого случая, когда одна STATION_1_I равна другой записи STATION_2_I и его STATION_2_I равняется STATION_1_I.

+0

Что [РСУБД] (http://en.wikipedia.org/wiki/Relational_database_management_system) вы используете? 'RDBMS' означает * Реляционная система управления базами данных *. 'RDBMS является основой для SQL', и для всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и т. Д. –

+0

Я использую oracle – jfin3204

ответ

3

INTERSECT удалит дубликаты для вас

select "station_1_I", "station_2_I" from mytable 
intersect 
select "station_2_I", "station_1_I" from mytable 
      where "station_2_I" < "station_1_I" 

SQL Fiddle

+0

+1 для курящих кубинских сигар – Kermit

+0

Не работала, все еще получая обе записи. – jfin3204

+0

это не сработает, если у вас есть этот набор записей '1,2' и' 2,1', как это будет пересекаться работать на '2,1' и' 1,2'? http://www.sqlfiddle.com/#!4/171dc/1 – SkyDrive

2
select a,b from 
(
select 
(case when a<b then a else b end) as a, 
(case when a>b then a else b end) as b 
from (
select station_1_I as a, station_2_I as b from MyTable 
union all 
select station_2_I, station_1_I from MyTable 
) having count(*)=2 group by a,b 
) group by a,b 
+0

не работал. все еще получая обе записи. – jfin3204

+0

А, вам не нужны оба дубликата? Хорошо, теперь я понимаю. Будет отредактировать ответ в соответствии с этим. –

+0

И, между прочим, я пытался заставить его работать над этими RDBMS, но не поддерживает 'intersect' –

Смежные вопросы