私のpostgresql列構造は次のようになります。
id | from | to
---------------
1 | A | B
2 | A | B
3 | C | D
今、私は次のような結果が必要です:
res
-----
'A:B'
'B:A'
'C:D'
'D:C'
最初の行と行はA:BからB:Aに、「C:D」から「D:C」に並べ替えられ、2番目の列は明確な操作のために省略されています。
これはスタックオーバーフローの質問に似ていますが、Unionは明確な組み合わせを提供します。
SELECT concat("from",':',"to") as res From Table
UNION
SELECT concat("to",':',"from") From Table
Least()およびGreatest()をdistinct
と一緒に使用することもできます。それはそれらを連結する必要なしに個々の値を保存します。
select distinct least("from", "to"), greatest("from", "to")
from the_table;