Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL CASE 문으로 학생 점수에 따라 사용자 지정 메시지 출력하는 방법

MySQL에서 점수(Marks) 값에 따라 서로 다른 메시지를 출력하려면 CASE 문을 사용하면 됩니다. CASE 문은 조건을 평가한 후 조건에 맞는 결과값을 반환하는 SQL의 강력한 제어 흐름 함수입니다.

이번 글에서는 실제 예제를 통해 학생 점수 열을 기준으로 'Good Marks'와 'Not Good Marks' 같은 사용자 지정 메시지를 설정하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. 점수를 저장할 정수형(int) 컬럼 하나만 포함된 간단한 테이블입니다.

mysql> create table DemoTable1952
    (
    Marks int
    );
Query OK, 0 rows affected (0.00 sec)

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다. 40점 기준으로 판단할 수 있도록 40점 이상과 이하의 값을 모두 포함했습니다.

mysql> insert into DemoTable1952 values(35);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1952 values(65);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1952 values(55);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1952 values(39);
Query OK, 1 row affected (0.00 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1952;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------+
| Marks |
+-------+
|    35 |
|    65 |
|    55 |
|    39 |
+-------+
4 rows in set (0.00 sec)

4. CASE 문으로 사용자 지정 메시지 설정하기

이제 핵심인 CASE 문을 활용한 쿼리입니다. 점수가 40보다 크면 'Good Marks'를, 그렇지 않으면 'Not Good Marks'를 반환하도록 조건을 작성하고, AS 키워드로 결과 컬럼에 별칭(Result)을 지정했습니다.

mysql> select
    case when Marks > 40 then 'Good Marks' else 'Not Good Marks' end as Result
    from DemoTable1952;

실행 결과는 다음과 같습니다.

+----------------+
| Result         |
+----------------+
| Not Good Marks |
| Good Marks     |
| Good Marks     |
| Not Good Marks |
+----------------+
4 rows in set (0.00 sec)

결과 분석

출력 결과를 보면 35점과 39점은 40 이하이므로 'Not Good Marks'가 반환되었고, 65점과 55점은 40보다 크므로 'Good Marks'가 반환된 것을 확인할 수 있습니다.

마무리

이처럼 MySQL의 CASE 문을 사용하면 별도의 애플리케이션 로직 없이도 쿼리 수준에서 조건별 메시지나 등급을 손쉽게 처리할 수 있습니다. WHEN 절을 여러 개 추가하면 세 구간 이상의 등급(예: A, B, C)으로 확장하는 것도 가능하니, 실무에서 다양하게 활용해 보시기 바랍니다.