I was goofing around and this seems to work if you only have 1 or 2 "duplicates." If you ahve more, then you'll need to do more to "uniqueify" the starting datasets:DECLARE @Foo TABLE (C1 INT, C2 INT)INSERT @Foo (C1, C2)VALUES (1, 100), (2, 121), (2, 130), (121, 2), (3, 99), (99, 3), (120, 10)SELECT C1, C2, RowNumFROM ( SELECT A.C1, A.C2, ( ROW_NUMBER() OVER (ORDER BY A.C1, A.C2) - ROW_NUMBER() OVER (ORDER BY B.C1, B.C2) ) AS RowNum FROM @Foo AS A LEFT JOIN @Foo AS B ON A.C1 = B.C2 AND A.C2 = B.C1 ) AS A WHERE RowNum >= 0