SQL

SQL

CASE WHEN은 SELECT뿐 아니라 WHERE, ORDER BY에도 쓸 수 있다

페이지 정보

profile_image
영삼이
0건 43회 25-03-28 15:21

본문

CASE WHEN은 SELECT뿐 아니라 WHERE, ORDER BY에도 쓸 수 있다

조건마다 다른 필터링, 정렬이 필요할 때 강력한 도구


✅ SELECT에서 사용하는 기본 형태

SELECT
  name,
  CASE 
    WHEN gender = 'M' THEN '남자'
    WHEN gender = 'F' THEN '여자'
    ELSE '기타'
  END AS gender_label
FROM users;
  • 익숙한 사용법

  • 조건에 따라 값을 다르게 보여줄 수 있음


✅ WHERE 절에서 조건 분기

SELECT *
FROM orders
WHERE
  status = CASE
    WHEN is_vip = 1 THEN 'confirmed'
    ELSE 'paid'
  END;
  • 조건마다 다른 필터링 기준 적용

  • 복잡한 필터도 1개의 WHERE 안에서 처리 가능


✅ ORDER BY에서 유동적 정렬

SELECT name, signup_date, last_login
FROM users
ORDER BY
  CASE
    WHEN last_login IS NOT NULL THEN last_login
    ELSE signup_date
  END DESC;
  • NULL이 있는 필드와 없는 필드를 섞어서 정렬 가능

  • 비즈니스 로직에 따라 정렬 우선순위 제어


✔️ CASE WHEN은 단순 표시용이 아니다.
WHERE, ORDER BY에서도 적극 활용하면 복잡한 로직도 쿼리 한 줄로 표현할 수 있다.

댓글목록

등록된 댓글이 없습니다.