我有一个包含两列的表。选择1条记录,其中两条记录在不同列中具有相同的值
的前两行的列值是反转的,我将如何选择适合每一个地方一个STATION_1_I等于另一个记录STATION_2_I及其STATION_2_I等于STATION_1_I例如一个记录。
我有一个包含两列的表。选择1条记录,其中两条记录在不同列中具有相同的值
的前两行的列值是反转的,我将如何选择适合每一个地方一个STATION_1_I等于另一个记录STATION_2_I及其STATION_2_I等于STATION_1_I例如一个记录。
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"
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
没有工作。仍然获得两个记录。 – jfin3204
啊,你不需要两个重复?好的,现在我明白了。将根据此编辑答案。 –
顺便说一句,我试图使它在那些RDBMS上工作,但不支持'intersect' –
[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)您使用的是什么? 'RDBMS'代表*关系数据库管理系统*。 'RDBMS是SQL'的基础,并且适用于所有现代数据库系统,如MS SQL Server,IBM DB2,Oracle,MySQL等等...... –
我正在使用oracle – jfin3204