Отдельные Маршрут Пары

Я пытаюсь найти способ получить отличительные пары.

Предположим, что в таблице есть 3 поля: id, city1 и city2.

Пример данных:
1, Нью-Йорк, Лос-Анджелес
2, Нью-Йорк, Филадельфия
3, Нью-Йорк, Хьюстон
4, Лос-Анджелес, Нью-Йорк
5, Лос-Анджелес, Хьюстон
6, Хьюстон, Нью-Йорк
7, Хьюстон, Лос-Анджелес

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

Пример вывода:
Нью-Йорк, Лос-Анджелес
Нью-Йорк, Филадельфия
Нью-Йорк, Хьюстон,
Лос-Анджелес, Хьюстон

1 sql
12.10.2009 21:10:20
1 ОТВЕТ
РЕШЕНИЕ

Пытаться

SELECT city1, city2 FROM YourTable WHERE city1 < city2 
    UNION SELECT city2, city1 FROM YourTable T1 WHERE city1 > city2

Убедитесь , что не использовать ALL ключевое слово после UNION , так что UNION выпадет дубликаты из набора результатов.

5
12.10.2009 21:23:04
Мой пример дает правильный список пар городов, как вы и просили, но он всегда имеет «самый низкий» город в первом столбце. Поэтому все, кроме Нью-Йорка, Фила в моем примере выходит «задом наперед». Я полагаю, что это удовлетворит ваши потребности.
Larry Lustig 12.10.2009 21:29:21