본문 바로가기
자격증 준비/SQLD

ORDER BY란 무엇인가: 오름차순, 내림차순 쉽게 이해하기

by 코딩사무소장 2026. 3. 15.
반응형

ORDER BY란 무엇인가: 오름차순, 내림차순 쉽게 이해하기

SQL을 공부하다 보면 ORDER BY를 자주 보게 됩니다. 조회 결과는 잘 나오는데, 원하는 순서로 정렬되지 않아서 헷갈리는 경우가 많습니다. 결론부터 말하면 ORDER BY는 조회한 결과를 특정 기준으로 정렬하는 구문입니다. 이 글에서는 SQL 초보자와 SQLD 준비생이 헷갈리지 않도록 ORDER BY의 의미, 오름차순과 내림차순 차이, 예제, 자주 하는 실수까지 한 번에 정리해보겠습니다.

이 글은 이런 분께 추천합니다
  • ORDER BY가 왜 필요한지 헷갈리는 분
  • ASC와 DESC 차이를 확실히 정리하고 싶은 분
  • 조회 결과를 원하는 순서로 정렬하는 방법이 궁금한 분
  • SQLD에서 ORDER BY 관련 문제를 자주 틀리는 분

ORDER BY란 무엇인가

ORDER BY는 조회 결과를 정렬하는 구문입니다.

SELECT문으로 데이터를 조회하면 결과는 나올 수 있지만, 그 순서가 항상 내가 원하는 순서라는 보장은 없습니다. 이때 특정 컬럼을 기준으로 오름차순 또는 내림차순 정렬하고 싶다면 ORDER BY를 사용합니다.

쉽게 말하면 ORDER BY는 “결과를 보기 좋은 순서로 다시 줄 세우는 것”입니다.

왜 ORDER BY가 필요할까

조회 결과는 나오는 것만으로 끝나지 않고, 보통은 의미 있는 순서로 보는 것이 중요합니다.

  • 급여가 높은 순서대로 보고 싶을 때
  • 최근 가입자 순으로 보고 싶을 때
  • 이름 가나다순으로 보고 싶을 때
  • 점수가 낮은 순서부터 보고 싶을 때

즉, ORDER BY는 데이터 조회 결과를 실제로 활용하기 쉽게 만드는 역할을 합니다.

오름차순과 내림차순 차이

ORDER BY에서는 보통 두 가지 정렬 방향을 사용합니다.

  • ASC: 오름차순
  • DESC: 내림차순

ASC는 작은 값에서 큰 값으로, 가나다순, 오래된 날짜에서 최신 날짜 방향으로 정렬한다고 생각하면 됩니다. DESC는 그 반대입니다.

정렬 방식 의미 예시
ASC 오름차순 1→10, A→Z, 오래된 날짜→최근 날짜
DESC 내림차순 10→1, Z→A, 최근 날짜→오래된 날짜

가장 기본적인 예제

직원 급여를 낮은 순서부터 보고 싶다면 아래처럼 쓸 수 있습니다.

SELECT name, salary
FROM employees
ORDER BY salary ASC;

반대로 급여가 높은 순서대로 보고 싶다면 DESC를 사용합니다.

SELECT name, salary
FROM employees
ORDER BY salary DESC;

ASC는 생략할 수 있다

SQL에서는 ASC가 기본값인 경우가 많기 때문에 생략해도 오름차순으로 동작합니다.

SELECT name, salary
FROM employees
ORDER BY salary;

위 쿼리는 보통 ORDER BY salary ASC와 같은 의미로 이해해도 됩니다.

여러 컬럼으로 정렬할 수도 있다

ORDER BY는 하나의 컬럼만이 아니라 여러 컬럼 기준으로도 정렬할 수 있습니다.

예를 들어 부서별로 묶고, 같은 부서 안에서는 급여가 높은 순서대로 보고 싶다면 아래처럼 쓸 수 있습니다.

SELECT department_id, name, salary
FROM employees
ORDER BY department_id ASC, salary DESC;

이 경우 먼저 department_id 기준으로 정렬하고, department_id가 같은 행들 안에서는 salary 기준으로 다시 정렬합니다.

ORDER BY는 언제 실행될까

ORDER BY는 보통 조회 결과가 만들어진 뒤 마지막에 적용되는 정렬 단계라고 이해하면 쉽습니다.

그래서 SQL 실행 순서 관점에서는 FROM, WHERE, GROUP BY, HAVING, SELECT 이후에 ORDER BY가 온다고 정리할 수 있습니다.

ORDER BY는 최종 결과를 보기 좋게 정렬하는 마지막 단계라고 기억하면 쉽습니다.

GROUP BY와 ORDER BY는 무엇이 다를까

GROUP BY는 같은 값끼리 묶는 구문이고, ORDER BY는 결과를 정렬하는 구문입니다.

둘 다 결과를 바꾸는 것처럼 보여서 헷갈릴 수 있지만 역할은 완전히 다릅니다.

  • GROUP BY = 그룹을 만든다
  • ORDER BY = 순서를 정한다

예를 들어 부서별 평균 급여를 구한 뒤, 평균 급여가 높은 부서 순으로 보고 싶다면 GROUP BY와 ORDER BY를 함께 사용할 수 있습니다.

SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
ORDER BY avg_salary DESC;

초보자가 자주 하는 실수

자주 하는 실수 1

ORDER BY를 쓰지 않아도 항상 같은 순서로 나온다고 생각하는 것

ORDER BY가 없으면 결과 순서는 보장되지 않는다고 먼저 생각하는 것이 안전합니다.

자주 하는 실수 2

ASC와 DESC 방향을 반대로 기억하는 것

ASC는 작은 것부터, DESC는 큰 것부터라고 기억하면 쉽습니다.

자주 하는 실수 3

GROUP BY와 ORDER BY 역할을 헷갈리는 것

GROUP BY는 묶기, ORDER BY는 정렬이라고 구분하면 훨씬 명확해집니다.

비전공자는 이렇게 외우면 쉽다

  • ASC = 작은 순서부터
  • DESC = 큰 순서부터
  • ORDER BY = 결과 줄 세우기
  • GROUP BY는 묶기, ORDER BY는 정렬이라고 같이 외우면 쉽습니다.

핵심 요약

  • ORDER BY는 조회 결과를 특정 기준으로 정렬하는 구문입니다.
  • ASC는 오름차순, DESC는 내림차순입니다.
  • 여러 컬럼 기준으로도 정렬할 수 있습니다.
  • ORDER BY는 보통 SQL 실행 흐름에서 마지막 정렬 단계라고 이해하면 쉽습니다.
  • GROUP BY와 ORDER BY는 역할이 다르므로 구분해서 기억해야 합니다.

FAQ

ORDER BY는 왜 필요한가요?

조회 결과를 원하는 기준과 순서로 보기 쉽게 정렬하기 위해 필요합니다.

ASC와 DESC 차이는 무엇인가요?

ASC는 오름차순, DESC는 내림차순입니다. 숫자, 문자, 날짜 모두 같은 개념으로 이해할 수 있습니다.

ASC는 생략해도 되나요?

보통은 가능합니다. 생략하면 오름차순으로 처리되는 경우가 많습니다.

ORDER BY 없이 조회하면 항상 같은 순서가 나오나요?

그렇게 보장된다고 생각하면 안 됩니다. 정렬이 중요하면 ORDER BY를 명시하는 것이 안전합니다.

SQLD에서도 ORDER BY가 자주 나오나요?

네. SQL 실행 순서, GROUP BY, 집계 결과 정렬과 함께 자주 나오는 기본 문법입니다.

반응형