Чередовать порядок набора результатов PostgreSQL

Допустим, у меня есть следующая таблица:

create temp table test (id serial, number integer);
insert into test (number) 
values (5), (4), (3), (2), (1), (0);

Если я сортирую по убыванию числа, я получаю:

select * from test order by number desc;
id | number
---+--------
 1 | 5
 2 | 4
 3 | 3
 4 | 2
 5 | 1
 6 | 0

Если я сортирую по возрастанию, я получаю:

select * from test order by number asc;

6 | 0
5 | 1
4 | 2
3 | 3
2 | 4
1 | 5

Как мне чередовать порядок, чтобы он чередовался между восходящим и нисходящим для каждой строки? например:

6 | 0   or   1 | 5
1 | 5        6 | 0
5 | 1        2 | 4
2 | 4        5 | 1
4 | 2        3 | 3
3 | 3        4 | 2
8
задан Erwin Brandstetter 3 May 2012 в 23:52
поделиться