ORDER BY(NoSQL 쿼리)
적용 대상: NoSQL
선택적인 ORDER BY
절은 쿼리에서 반환된 결과의 정렬 순서를 지정합니다.
구문
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
인수
설명 | |
---|---|
<sort_specification> |
쿼리 결과 집합을 정렬할 속성이나 식을 지정합니다. 정렬 열은 이름 또는 속성 별칭으로 지정할 수 있습니다. 여러 속성을 지정할 수 있습니다. 속성 이름은 고유해야 합니다. ORDER BY 절에서 열 속성의 순서가 정렬된 결과 집합의 구성 방식을 정의합니다. 즉 결과 집합이 첫 번째 속성으로 정렬된 다음 정렬된 해당 목록이 두 번째 속성으로 정렬되는 등등입니다. ORDER BY 절에서 참조되는 속성 이름은 선택 목록의 속성 또는 FROM 절에 지정된 컬렉션에 정의된 속성과 정확히 일치해야 합니다. |
<sort_expression> |
쿼리 결과 집합을 정렬할 하나 이상의 속성 또는 식을 지정합니다. |
<scalar_expression> |
계산할 값을 나타내는 식입니다. |
ASC 또는 DESC |
지정된 열의 값이 오름차순으로 정렬되는지 내림차순으로 정렬되는지를 지정합니다. ASC 는 오름차순으로 정렬하고, DESC 는 내림차순으로 정렬합니다. 이 인수를 지정하지 않으면 ASC (오름차순)가 기본 정렬 순서입니다. null 값은 가능한 가장 작은 값으로 취급됩니다. |
참고 항목
스칼라 식에 대한 자세한 내용은 스칼라 식을 참조하세요.
예제
이 섹션의 예제에서는 이 참조 항목 집합이 사용됩니다. 각 항목에는 first
및 last
하위 속성이 있는 name
속성이 포함됩니다.
[
{
"name": {
"first": "Casey",
"last": "Jensen"
},
"team": "Human resources"
},
{
"name": {
"first": "Amari",
"last": "Rivera"
},
"team": "Human resources"
},
{
"name": {
"first": "Kayla",
"last": "Lewis"
},
"team": "Human resources"
}
]
이 첫 번째 예제에서는 ORDER BY
절을 사용하여 필드를 기본 정렬 순서(오름차순)로 정렬합니다.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last
[
{
"firstName": "Casey",
"lastName": "Jensen"
},
{
"firstName": "Kayla",
"lastName": "Lewis"
},
{
"firstName": "Amari",
"lastName": "Rivera"
}
]
이 예제에서는 정렬 순서가 내림차순으로 명시적으로 지정됩니다.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC
[
{
"firstName": "Amari",
"lastName": "Rivera"
},
{
"firstName": "Kayla",
"lastName": "Lewis"
},
{
"firstName": "Casey",
"lastName": "Jensen"
}
]
이 마지막 예제에서 항목은 명시적으로 지정된 순서를 사용하여 특정 순서로 두 필드를 사용하여 정렬됩니다. 둘 이상의 필드를 사용하여 정렬하는 쿼리에는 복합 인덱스가 필요합니다.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
설명
ORDER BY
를 사용한 쿼리는 ORDER BY 절의 속성이 정의되지 않은 항목을 포함하여 모든 항목을 반환합니다. 일반적으로 결과에 다른undefined
형식이 표시되는 순서는 제어할 수 없습니다. 정의되지 않은 값의 정렬 순서를 제어하려면 임의의 값을undefined
속성에 할당하여 정의된 값 앞이나 뒤를 정렬합니다.ORDER BY
절을 사용하려면 인덱싱 정책에 정렬되는 필드에 대한 인덱스가 포함되어야 합니다. 쿼리 런타임은 속성 이름 또는 계산된 속성에 대한 정렬을 지원합니다. 런타임은 여러ORDER BY
속성도 지원합니다. 여러ORDER BY
속성이 있는 쿼리를 실행하려면 정렬되는 필드에 복합 인덱스를 정의합니다.- 정렬되는 속성이 일부 항목에 대해
undefined
되고 이를ORDER BY
쿼리에서 검색하려면 인덱스에 이 경로를 명시적으로 포함해야 합니다. 기본 인덱싱 정책은 정렬 속성이undefined
된 항목의 검색을 허용하지 않습니다.