쿼리가 출력 테이블을 생성한 후(선택 후) 목록이 처리되었습니다) 선택적으로 정렬할 수 있습니다. 정렬하면 선택하지 않으면 행이 지정되지 않은 순서로 반환됩니다. 이 경우 실제 순서는 스캔 및 조인에 따라 달라집니다. 계획 유형과 디스크의 순서가 결정되지만 이에 의존해서는 안 됩니다. 에이 특정 출력 순서는 정렬된 경우에만 보장될 수 있습니다. 단계가 명시적으로 선택되었습니다.
그주문 기준절은 다음을 지정합니다. 정렬 순서:
선택select_list발신테이블_표현주문 기준정렬_표현1 [ASC | 설명] [NULLS 첫 번째 | 마지막] [, sort_expression2 [ASC | 설명] [NULLS 첫 번째 | 마지막] ...]
정렬 표현식은 다음과 같은 모든 표현식이 될 수 있습니다. 쿼리의 선택 목록에서 유효합니다. 예는 다음과 같습니다:
테이블1에서 a, b를 선택하세요. ORDER BY a + b, c;
하나 이상의 표현식이 지정되면 이후 값은 이전 항목에 따라 동일한 행을 정렬하는 데 사용됩니다. 가치. 각 표현식 뒤에는 선택사항이 올 수 있습니다.ASC또는설명키워드 정렬 방향을 오름차순 또는 내림차순으로 설정합니다.ASC순서가 기본값입니다. 오름차순 주문 더 작은 값부터 먼저, 여기서"더 작게"은 다음과 같이 정의됩니다.<연산자. 마찬가지로 내림차순은 다음과 같이 결정됩니다.연산자.[1]
그NULL이 먼저임그리고NULL이 마지막임옵션을 사용하여 다음을 결정할 수 있습니다. 정렬에서 Null이 Null이 아닌 값 앞이나 뒤에 나타나는지 여부 주문. 기본적으로 null 값은 다른 값보다 큰 것처럼 정렬됩니다. 널이 아닌 값; 즉,NULL이 먼저임이다 기본값은설명주문하고NULL이 마지막임그렇지 않으면.
주문 옵션은 독립적으로 고려됩니다. 각 정렬 열에 대해. 예를 들어x로 주문, y 설명의미ORDER BY x ASC, y 설명, 이는와 동일하지 않습니다.주문 방법 x DESC, y DESC.
A 정렬_표현또한 가능합니다 다음과 같이 출력 열의 열 레이블 또는 번호입니다.
SELECT a + b AS sum, c FROM table1 ORDER BY sum; SELECT a, max(b) FROM table1 GROUP BY a ORDER BY 1;
둘 다 첫 번째 출력 열을 기준으로 정렬됩니다. 참고 출력 열 이름은 독립형이어야 합니다. 즉, 사용할 수 없습니다. 표현식에서 - 예를 들어 다음과 같습니다.아님맞습니다:
SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- 틀렸어요
이 제한은 모호성을 줄이기 위해 만들어졌습니다. 아직있다 모호한 경우주문 기준항목은 출력 열 이름이나 일치할 수 있는 간단한 이름 테이블 표현식의 열입니다. 출력 열은 다음에서 사용됩니다. 그런 경우. 다음을 사용하는 경우에만 혼란이 발생할 수 있습니다.AS다른 열과 일치하도록 출력 열의 이름을 바꾸려면 테이블 열의 이름입니다.
주문 기준결과에 적용 가능 의유니온, INTERSECT또는제외조합, 그러나 이 경우 정렬 기준만 허용됩니다. 표현식이 아닌 열 이름이나 숫자를 출력합니다.
| [1] |
사실,와이즈 토토사용기본 B-트리 연산자 클래스정렬 순서를 결정하기 위한 표현식의 데이터 유형 에 대한ASC그리고설명. 일반적으로 데이터 유형이 설정됩니다. 그래서<그리고연산자는 이 종류에 해당합니다 순서를 지정하지만 사용자 정의 데이터 유형의 디자이너는 다음을 수행할 수 있습니다. 뭔가 다른 일을 선택하세요. |