Предполагая, что в каждом отдельном line_id
есть только два адреса, вы можете обойти эту проблему, наведя порядок на point_address
в таблице результатов:
SELECT
l1.line_id, l1.point_address AS point_address1,
l2.point_address AS point_address2
FROM line_address l1 JOIN line_Address l2 ON l1.line_id = l2.line_id
WHERE l1.point_address < l2.point_address;
line_id point_address1 point_address2
---------- -------------- --------------
1 Address1 Address2
2 Address1 Address3
3 Address2 Address3
Обратите внимание, что это работает только в вышеприведенном предположении, следовательно, если мы добавим
INSERT INTO line_address (line_id, point_address) VALUES (3, 'Address4');
выборка дает
line_id point_address1 point_address2
---------- -------------- --------------
1 Address1 Address2
2 Address1 Address3
3 Address2 Address3
3 Address2 Address4
3 Address3 Address4
Реляционная алгебра не воспринимает это любезно, когда вы пытаетесь превратить строки в столбцы и наоборот.