SQL排序表基于两个可互换的字段

时间:2015-03-04 17:01:56

标签: sql postgresql sorting sql-order-by

我想按照进行通信的顺序对包含3列(时间,来源,收件人)的表进行排序。如果源和收件人在一起交谈,那么它会按时列出。目标是看到按时间排序的类似人之间的沟通。例如:

time|source|recipient

1   paul    amy
2   amy     paul
3   amy     paul
5   paul    jane
8   amy     paul
9   jane    paul
10  paul    amy
11  paul    jane

最终结果就像

1   paul    amy
2   amy     paul
3   amy     paul
8   amy     paul
10  paul    amy
5   paul    jane
9   jane    paul
11  paul    jane

1 个答案:

答案 0 :(得分:1)

你的问题有点模糊。我有根据的猜测是你想要这个:

SELECT *
FROM   tbl
ORDER  BY (GREATEST(source, recipient), LEAST(source, recipient), "time";

The manual about GREATEST and LEAST.