1
주문 나는 다음과 같은 테이블이 있습니다PostgreSQL을 - 조건
key | date | flag
--------------------------
1 now() true
2 now() - 1 hour true
3 now() + 1 hour true
4 now() false
5 now() - 1 hour false
6 now() + 1 hour false
내가 원하는 정렬 다음 : flag = false
와
- 첫째, 모든 행을. 이 행은
date asc
으로 정렬되어야합니다. - 그런 다음 다른 모든 행 (
flag = true
). 그러나이 행은date desc
으로 정렬해야합니다.
다음 쿼리가 정확합니까?
(
select *
from test
where flag = false
order by date asc
)
union all
(
select *
from test
where flag = true
order by date desc
)
더 좋은 방법이 있나요? union all
은 행을 정렬 된 상태로 유지할 것이므로 두 개의 내부 쿼리의 출력을 연결하면됩니까?
조건에 따라 order by
에서 열을 반복하는 방법을 모르겠다.
갱신
바이올린은 여기에서 찾을 수 있습니다 : http://rextester.com/FFOSS79584
조건 주문이'CASE' –
떨어지게 등으로 이루어집니다
'플래그에 의한 순서, 플래그가있는 경우의 종료일, 종료하지 않을 때의 종료일, 오름차순의 종료일'http://rextester.com/FDAY76293 –