如何查找切换两列值的行?

Den*_*ail 1 sql oracle11g

我有一个包含三列的表:StartingId,EndingId和TripCount.起始和结束ID分别是行程开始和结束的位置的PK.TripCount包含一个整数,表示人们在起始位置和结束位置之间旅行的次数.

有时候一次旅行的结束id成为另一次旅行的起始ID.在反转起始和结束ID时,计数可能也会有所不同.

这是一些示例数据:

StartingId   EndingId   TripCount
100          200        1023
101          300        5214
200          100        600
650          200        100
Run Code Online (Sandbox Code Playgroud)

如何仅返回另一行和TripCount的反向行.我想要的结果:

StartingId   EndingId   TripCount
100          200        1023
200          100        600
Run Code Online (Sandbox Code Playgroud)

Jon*_*onH 6

您使用不同的别名加入表本身.您希望一个表的StartingId等于同一个表的EndingId,反之亦然.

Select 
      t.StartingId, 
      t.EndingId, 
      t.TripCount 
FROM 
      MyTable t 
INNER JOIN 
      MyTable t2 
ON
      t2.StartingId = t.EndingId AND t2.EndingId = t.StartingId
Run Code Online (Sandbox Code Playgroud)

SQL小提琴演示