59. SQL - case when (쓰는 방식)

Jason·2026년 2월 1일

SQL

목록 보기
42/47

SQL 내가 틀린 것들 #59 — CASE WHEN 들여쓰기 & 합치기


🤔 문제 상황

CASE WHEN을 3개 따로 쓰고 있었다...

-- ❌ 이렇게 쓰면 안 됨!
CASE WHEN score >= 90 THEN 'A' END
CASE WHEN score >= 80 THEN 'B' END
CASE WHEN score < 80 THEN 'C' END

CASE 3개가 아니라 1개로 합쳐야 한다!


✅ 정답: CASE 하나로!

CASE 
  WHEN score >= 90 THEN 'A'
  WHEN score >= 80 THEN 'B'
  ELSE 'C'
END AS grade

💡 왜 하나로?

CASE WHEN은 순차 처리!

위에서 걸리면 아래는 검사 안 함!

score첫 번째 WHEN두 번째 WHEN결과
95✅ >= 90검사 안 함A
85✅ >= 80B
70C (ELSE)

.
.
.
.
.


📌 들여쓰기 스타일

결론: 알잘딱하게 하면 된다!!! 정답 없음!

스타일 1: CASE 뒤에 바로

CASE WHEN score >= 90 THEN 'A'
     WHEN score >= 80 THEN 'B'
     ELSE 'C'
END AS grade

스타일 2: 줄바꿈

CASE 
  WHEN score >= 90 THEN 'A'
  WHEN score >= 80 THEN 'B'
  ELSE 'C'
END AS grade

둘 다 OK! 정답 없음! 읽기 편한 대로!

실무에서도?

회사마다 코딩 컨벤션이 다름!
정해진 룰이 있으면 그거 따르고, 없으면 읽기 편하게!

코테에서는?

채점은 실행 결과만 봄!
들여쓰기 때문에 감점? 절대 없음!

그러니까 진짜 알잘딱! 😎

.
.
.
.
.
.
.


⚠️ 주의: 독립 CASE vs 하나의 CASE

독립 CASE (각각 COUNT할 때)

-- 각각 독립! 범위 명시 필수!
COUNT(CASE WHEN amount < 50000 THEN 1 END) AS bronze,
COUNT(CASE WHEN amount >= 50000 AND amount < 100000 THEN 1 END) AS silver,
COUNT(CASE WHEN amount >= 100000 THEN 1 END) AS gold

하나의 CASE (등급 매길 때)

-- 순차 처리! 하나로 합치기!
CASE 
  WHEN score >= 90 THEN 'A'
  WHEN score >= 80 THEN 'B'
  ELSE 'C'
END AS grade

📌 정리

상황방법
등급 1개 매기기CASE 하나로! (순차 처리)
등급별 COUNTCASE 여러 개! (각각 독립)
들여쓰기자유! 읽기 편한 대로!

CASE 하나 vs 여러 개, 상황에 맞게! 💪

profile
Data Analyst | Thoughts Become Things. 할 수 있다고 생각하면 할 수 있다. 할 수 없다고 생각하면 할 수 없다. | www.linkedin.com/in/명수-제-7ab843200

0개의 댓글