[SQL] ORDER BY FIELD()로 원하는 순서대로 정렬하기

Unit·2025년 11월 30일

SQL

목록 보기
49/59

데이터 출력 시 정렬 기준을 직접 지정해야 하는 상황이 있습니다.
예를 들어 status 값을 아래 순서로 보여주고 싶다고 해볼게요.

  • pending
  • processing
  • done

그런데 기본 정렬을 적용하면 알파벳 순서 때문에 done → pending → processing 또는 그 역순으로 의도와 다르게 정렬되곤 합니다.

이럴 때 간단하게 사용할 수 있는 문법이 바로 ORDER BY FIELD() 입니다.


📄 예시 데이터

statuscount
pending120
done80
processing95

원하는 순서 : pending → processing → done


🖥️ 쿼리

SELECT status
     , count
FROM orders
ORDER BY FIELD(status, 'pending', 'processing', 'done');

👁️ 결과

statuscount
pending120
processing95
done80

정렬 순서를 FIELD() 안에서 직접 정의했기 때문에, 지정한 순서 그대로 출력됩니다.


정리

✔️ 커스텀 정렬이 필요할 때는 ORDER BY FIELD()로 원하는 순서를 직접 지정해보세요.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글