반응형

안녕하세요! 오늘은 데이터베이스에서 자주 사용되는 DECODE와 CASE문에 대해 알아보고, 실제 예시와 결과를 분석해보려고 합니다. DECODE와 CASE문은 데이터베이스에서 조건에 따라 다른 결과를 반환하는 데 사용되는 제어 구문입니다. 그럼 바로 예시를 통해 살펴보도록 하겠습니다.

 

DECODE문 예시 

DECODE문은 Oracle 데이터베이스에서 주로 사용되며, 조건에 따라 다른 값을 반환합니다. 예를 들어, 학생들의 성적을 기준으로 학점을 부여하는 경우를 생각해봅시다. 성적이 90 이상이면 'A', 80 이상이면 'B', 70 이상이면 'C', 60 이상이면 'D', 그 외에는 'F'를 반환하도록 하겠습니다.

SELECT student_name, score,
       DECODE(
         WHEN score >= 90 THEN 'A'
         WHEN score >= 80 THEN 'B'
         WHEN score >= 70 THEN 'C'
         WHEN score >= 60 THEN 'D'
         ELSE 'F'
       ) AS grade
FROM students;

위의 예시에서는 score라는 컬럼을 기준으로 DECODE문을 사용하여 학점을 계산하고 있습니다. score가 90 이상이면 'A', 80 이상이면 'B', 70 이상이면 'C', 60 이상이면 'D'를 반환하고, 그 외에는 'F'를 반환하도록 설정되어 있습니다.

 

결과

 

student_name score grade
John 92 A
Sarah 85 B
Emma 78 C
Michael 64 D
David 55 F

위의 예시에서는 각 학생들의 이름, 점수, 그리고 계산된 학점이 출력되었습니다. John 학생은 92점으로 'A'학점을 받았고, Sarah 학생은 85점으로 'B'학점을 받았습니다

 

CASE문 예시 

CASE문은 대부분의 데이터베이스 시스템에서 사용 가능한 제어 구문으로, 조건에 따라 다른 결과를 반환합니다. 위에서 사용한 예시와 동일한 학점 계산을 CASE문을 사용하여 구현해보겠습니다.

 

SELECT student_name, score,
       CASE
         WHEN score >= 90 THEN 'A'
         WHEN score >= 80 THEN 'B'
         WHEN score >= 70 THEN 'C'
         WHEN score >= 60 THEN 'D'
         ELSE 'F'
       END AS grade
FROM students;

 

DECODE문 예시와 대부분 유사하지만, DECODE 키워드 대신 CASE 키워드를 사용하고 WHEN 절과 THEN 절을 분리하여 작성하였습니다.

위의 예시와 동일한 결과가 출력됩니다. CASE문을 사용하여 학점을 계산한 결과는 DECODE문을 사용한 경우와 완전히 동일합니다.

DECODE와 CASE문은 복잡한 조건에 따라 다른 결과를 반환할 때 유용한 도구입니다. 각각의 문법과 사용 방법은 조금씩 차이가 있지만, 이 두 가지를 잘 활용하면 데이터베이스에서 조건에 따라 다른 로직을 처리할 수 있습니다.

이상으로 DECODE와 CASE문의 활용 예시와 결과에 대해 알아보았습니다. 감사합니다!

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기