Microsoft SQL Server
주문
수색…
비고
ORDER BY 절의 목적은 쿼리에서 반환 된 데이터를 정렬하는 것입니다.
ORDER BY 절이 없으면 쿼리에서 반환하는 행 의 순서는 정의되지 않습니다.
ORDER BY 절에 대한 자세한 내용은 MSDN 설명서를 참조하십시오. https://msdn.microsoft.com/en-us/library/ms188385.aspx
간단한 ORDER BY 절
다음은 Employees 테이블을 사용하여 Id, FName 및 LName 열을 (오름차순) LName 순서로 반환하는 예제입니다.
SELECT Id, FName, LName FROM Employees
ORDER BY LName
보고:
신분증 | FName | LName |
---|---|---|
2 | 남자 | 존슨 |
1 | 제임스 | 스미스 |
4 | 조나단 | 스미스 |
삼 | 남자 이름 | 윌리엄스 |
내림차순으로 정렬하려면 field 매개 변수 다음에 DESC 키워드를 추가하십시오. 예를 들어, LName 내림차순의 동일한 쿼리는 다음과 같습니다.
SELECT Id, FName, LName FROM Employees
ORDER BY LName DESC
여러 필드로 주문
ORDER BY
절에는 ASCending 또는 DESCending 순서로 여러 필드를 지정할 수 있습니다.
예를 들어, http://stackoverflow.com/documentation/sql/280/example-databases/1207/item-sales-table#t=201607211314066434211 테이블을 사용하면 SaleDate별로 오름차순으로 정렬 된 쿼리를 반환 할 수 있습니다. 수량이 내림차순으로 표시됩니다.
SELECT ItemId, SaleDate, Quantity
FROM [Item Sales]
ORDER BY SaleDate ASC, Quantity DESC
ASC
키워드는 선택 사항이며 결과는 기본적으로 주어진 필드의 오름차순으로 정렬됩니다.
복잡한 논리를 가진 ORDER BY
그룹별로 데이터를 다르게 정렬하려면 CASE
구문을 ORDER BY
추가 할 수 있습니다. 이 예에서는 부서 1의 직원과 부서 2의 직원을 급여로 주문하겠습니다.
신분증 | FName | LName | 전화 번호 | 관리자 ID | DepartmentId | 봉급 | HireDate |
---|---|---|---|---|---|---|---|
1 | 제임스 | 스미스 | 1234567890 | 없는 | 1 | 1000 | 01-01-2002 |
2 | 남자 | 존슨 | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
삼 | 남자 이름 | 윌리엄스 | 1357911131 | 1 | 2 | 600 | 12-05-2009 |
4 | 조나단 | 스미스 | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
5 | 샘 | 색슨 족 | 1372141312 | 2 | 2 | 400 | 25-03-2015 |
The following query will provide the required results:
SELECT Id, FName, LName, Salary FROM Employees
ORDER BY Case When DepartmentId = 1 then LName else Salary end
주문 주문
알파벳 순서 / 숫자 순서 이외의 다른 것을 사용하여 열별로 정렬하려는 case
를 사용하여 원하는 순서를 지정할 수 있습니다.
order by Group
:
그룹 | 카운트 |
---|---|
은퇴하지 않았다. | 6 |
은퇴 한 | 4 |
합계 | 10 |
order by case group when 'Total' then 1 when 'Retired' then 2 else 3 end
반환 :
그룹 | 카운트 |
---|---|
합계 | 10 |
은퇴 한 | 4 |
은퇴하지 않았다. | 6 |