본문 바로가기

sqld

2-6) ORDER BY 절

ORDER BY 절
  • 데이터는 입력된 순서대로 출력, 출력되는 행의 순서를 사용자가 변경하고자 할 때 ORDER BY 절 사용
  • ORDER BY 뒤에 명시된 컬럼 순서대로 정렬 → 1차 정렬, 2차 정렬 전달 가능
  • 정렬 순서 : 오름차순 (ASC), 내림차순 (DESC)로 전달
    • 생략 시 오름차순 정렬
  • 유일하게 SELECT 절에 정의한 컬럼 ALIAS 사용 가능
  • SELECT 절에 선언된 순서대로의 숫자 전달 가능
    • 컬럼명과 숫자 혼합 사용 가능

 

** 문법

 

 

정렬 순서 (오름차순)
  • 한글 : 가, 나, 다, 라...
  • 영어 : A, B, C, D...
  • 숫자 : 1, 2, 3, 4...
  • 날짜 : 과거 날짜부터 최근 날짜 순서로 정렬

 

예1) 문자 정렬

  • 가장 왼쪽 문자부터, 같은 값이면 다음 문자의 값을 비교해서 정렬됨

 

예2) 숫자값을 문자값으로 바꾼 뒤 정렬

  • TO_CHAR(숫자)를 출력하는 경우 문자 정렬 기준대로 왼쪽부터 비교하여 정렬

 

예3) 날짜 정렬 (오름차순 : 오래된 순서부터)

 

예4) SELECT 절 컬럼 순서를 사용한 정렬

  • 처음 값부터 1부터 시작, 3에 해당하는 HIRE_DATE에 따른 오름차순 정렬

 

복합 정렬
  • 먼저 정렬한 값이 동일한 결과가 있을 경우 추가적으로 정렬 가능
  • 1차 정렬한 값이 같은 경우 그 값 안에서 2차 정렬 컬럼값을 기준으로 정렬

 

예1) SALARY 값을 기준으로 먼저 내림차순 정렬 후, 같은 값에 대해 HIRE_DATE 값으로 정렬

 

예2) 컬럼 별칭을 사용한 정렬

  • SELECT 절에서 선언한 ALIAS 사용 가능

예3) 컬럼명 또는 컬럼별칭과 컬럼 순서를 사용한 정렬

  • DEPARTMENT_ID로 먼저 오름차순 정렬, 같은 값에 대해서 EMPLOYEE_ID에 대한 오름차순 정렬

 

NULL의 정렬
  • NULL을 포함한 값의 정렬 시 ORACLE은 기본적으로 NULL을 마지막에 배치 (SQL Server는 처음에 배치)
  • ORACLE은 ORDER BY 절에 NULLS LAST | NULLS FIRST를 명시하여 NULL 정렬 순서 변경 가능

 

예) NULL을 포함한 컬럼의 정렬 결과 (ORACLE)

  • ORACLE은 NULLS LAST가 기본 (오름차순 정렬의 경우)
  • 내림차순 정렬로 정렬 시 NULL 컬럼이 위에 배치됨
    • NULL 이외의 값은 내림차순 정렬하고 NULL값은 밑에 배치하고 싶다면 
      → ORDER BY COMM DESC NULLS LAST

  • NULLS FIRST로 NULL 정렬 위치 변경 가능

 

 

 

 

'sqld' 카테고리의 다른 글

2-8) 표준 조인  (0) 2024.08.21
2-7) 조인  (0) 2024.08.21
2-5) GROUP BY 절과 HAVING 절  (0) 2024.08.21
2-4) WHERE 절  (0) 2024.08.21
2-3) 함수  (0) 2024.08.21