如何显示:行对 - 列一行的值在第2行的列b中,列第二行的值在第一行oracle的列b中?

时间:2017-08-20 15:00:20

标签: oracle pattern-matching

我有一张巴士详情表。 它有bus_name,bus_source和bus_destination。 我需要知道哪些公交车可以回程。 例如

  bus_name | bus_source | bus_destination  
    a      | Chennai    | Bangalore
    b      | Bangalore  | Chennai
    c      | Mumbai     | Chennai  

我希望如此:

  bus_name | bus_source | bus_destination
    a      | Chennai    | Bangalore
    b      | Bangalore  | Chennai

1 个答案:

答案 0 :(得分:2)

使用EXISTS()

SELECT * FROM YourTable t
WHERE EXISTS(SELECT 1 FROM YourTable s
             WHERE t.bus_source = s.bus_destination
               AND t.bus_destination = s.bus_source);