쿼리가 출력 테이블을 생성한 후(선택 후) 목록이 처리되었습니다) 선택적으로 정렬할 수 있습니다. 정렬하면 선택하지 않으면 행이 무작위 순서로 반환됩니다. 는 이 경우 실제 순서는 스캔 및 조인 계획에 따라 달라집니다. 유형과 순서는 디스크에 있지만 의존해서는 안 됩니다. 에이 특정 출력 순서는 정렬된 경우에만 보장될 수 있습니다. 단계가 명시적으로 선택되었습니다.
ORDER BY 절은 정렬 순서를 지정합니다:
선택select_list보낸 사람테이블_표현주문 기준열1 [ASC | 설명] [, 열2 [ASC | 설명] ...]열1등을 참조하세요. 목록 열을 선택합니다. 이는 다음 중 하나의 출력 이름일 수 있습니다. 열(참조섹션 2.2.1) 또는 열 번호입니다. 몇 가지 예:
테이블1에서 a, b를 선택하세요. ORDER BY a; SELECT a + b AS 합계, c FROM table1 ORDER BY 합계; SELECT a, sum(b) FROM table1 GROUP BY a ORDER BY 1;
SQL 표준의 확장으로서 Postgres는 또한 다음을 허용합니다. 임의의 표현으로 정렬:
테이블1에서 a, b를 선택하세요. ORDER BY a + b;FROM 절의 열 이름에 대한 참조는 다음과 같습니다. 선택 목록에서 이름이 변경된 경우도 허용됩니다.
테이블1에서 AS b를 선택하세요. ORDER BY a;그러나 이러한 확장은 UNION과 관련된 쿼리에서는 작동하지 않습니다. INTERSECT 또는 EXCEPT이며 다른 DBMS로 이식할 수 없습니다.
각 열 사양 뒤에는 선택적 ASC가 올 수 있습니다. 또는 DESC를 사용하여 정렬 방향을 설정합니다. ASC가 기본값입니다. 오름차순 순서는 더 작은 값을 먼저 넣습니다. 여기서"더 작게"는 다음과 같이 정의됩니다.<연산자. 마찬가지로 내림차순은 로 결정연산자.
둘 이상의 정렬 열이 지정되면 이후 항목은 지정된 순서에 따라 동일한 행을 정렬하는 데 사용됩니다. 이전 정렬 사양입니다.