SELECT 문에 반환된 개체에 사용되는 정렬 순서를 지정합니다.
문법
[ ORDER BY
{
order_by_expression [SKIP n] [LIMIT n]
[ COLLATE collation_name ]
[ ASC | DESC ]
}
[ ,…n ]
]
주장들
order_by_expression 정렬할 속성을 지정하는 유효한 쿼리 식입니다. 여러 정렬 식을 지정할 수 있습니다. ORDER BY 절의 정렬 식 시퀀스는 정렬된 결과 집합의 구성을 정의합니다.
COLLATE {collation_name}에 지정된 collation_name데이터 정렬에 따라 ORDER BY 작업을 수행하도록 지정합니다. COLLATE는 문자열 식에만 적용됩니다.
ASC 지정 된 속성의 값을 가장 낮은 값에서 가장 높은 값으로 오름차순으로 정렬 되도록 지정 합니다. 기본값입니다.
DESC 지정된 속성의 값을 가장 높은 값에서 가장 낮은 값으로 내림차순으로 정렬하도록 지정합니다.
제한 n 첫 번째 n 항목만 선택됩니다.
SKIP n 첫 번째 n 항목을 건너뜁니다.
비고
ORDER BY 절은 SELECT 절의 결과에 논리적으로 적용됩니다. ORDER BY 절은 별칭을 사용하여 선택 목록의 항목을 참조할 수 있습니다. ORDER BY 절은 현재 범위에 있는 다른 변수도 참조할 수 있습니다. 그러나 SELECT 절을 DISTINCT 한정자로 지정한 경우 ORDER BY 절은 SELECT 절의 별칭만 참조할 수 있습니다.
SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2
ORDER BY 절의 각 식은 정렬된 같지 않음(보다 작거나 큼 등)에 대해 비교할 수 있는 일부 형식으로 평가해야 합니다. 이러한 형식은 일반적으로 숫자, 문자열 및 날짜와 같은 스칼라 기본 형식입니다. 비교 가능한 형식의 RowType도 순서를 비교할 수 있습니다.
코드가 최상위 프로젝션 이외의 순서가 지정된 집합을 반복하는 경우 출력의 순서가 유지되지 않습니다.
다음 샘플에서는 순서가 유지됩니다.
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
다음 쿼리에서는 중첩된 쿼리의 순서가 무시됩니다.
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
정렬된 UNION, UNION ALL, EXCEPT 또는 INTERSECT 작업을 수행하려면 다음 패턴을 사용합니다.
SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...
제한된 키워드
절에 사용되는 경우 다음 키워드를 따옴표로 ORDER BY 묶어야 합니다.
십자가
가득 차다
열쇠
왼쪽
주문
아우터
올바른
ROW
값
중첩된 쿼리 순서 지정
Entity Framework에서 중첩된 식은 쿼리의 아무 곳에나 배치할 수 있습니다. 중첩된 쿼리의 순서는 유지되지 않습니다.
다음 쿼리는 결과를 성으로 정렬합니다.
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
다음 쿼리에서는 중첩된 쿼리의 순서가 무시됩니다.
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
예시
다음 Entity SQL 쿼리는 ORDER BY 연산자를 사용하여 SELECT 문에 반환된 개체에 사용되는 정렬 순서를 지정합니다. 쿼리는 AdventureWorks 판매 모델을 기반으로 합니다. 이 쿼리를 컴파일하고 실행하려면 다음 단계를 수행합니다.
방법: StructuralType 결과를 반환하는 쿼리 실행의 절차를 따릅니다.
다음 쿼리를 메서드에 인수
ExecuteStructuralTypeQuery로 전달합니다.
SELECT VALUE p FROM AdventureWorksEntities.Products
AS p ORDER BY p.ListPrice