MySQL에서 CASE WHEN 구문과 SELECT 문을 함께 사용하면 ID 값이 홀수인지 짝수인지 손쉽게 판별할 수 있습니다. 핵심 원리는 나머지 연산자(%)를 활용하는 것으로, 값을 2로 나눈 나머지가 0이 아니면 홀수, 0이면 짝수로 분류하는 방식입니다.
1. 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
PageId int
);
Query OK, 0 rows affected (0.85 sec)2. 데이터 삽입
insert 명령어를 사용하여 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable values(233); Query OK, 1 row affected (0.36 sec) mysql> insert into DemoTable values(34); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(76); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.26 sec)
3. 전체 데이터 조회
select 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+--------+ | PageId | +--------+ | 233 | | 34 | | 76 | | 89 | +--------+ 4 rows in set (0.00 sec)
4. CASE WHEN으로 홀수·짝수 판별하기
다음은 SELECT 문과 함께 CASE WHEN을 사용한 쿼리입니다. PageId를 2로 나눈 나머지(% 연산)가 0이 아니면 'PageId is odd'(홀수), 그렇지 않으면 'PageId is even'(짝수)으로 표시하도록 작성했습니다.
mysql> select PageId, case when PageId %2 !=0 then 'PageId is odd' else 'PageId is even' end AS Result from DemoTable;
실행 결과는 다음과 같습니다.
+--------+----------------+ | PageId | Result | +--------+----------------+ | 233 | PageId is odd | | 34 | PageId is even| | 76 | PageId is even| | 89 | PageId is odd | +--------+----------------+ 4 rows in set (0.00 sec)
위 결과에서 볼 수 있듯이, 233과 89는 홀수로, 34와 76은 짝수로 정상적으로 분류되었습니다. 이처럼 CASE WHEN은 조건에 따라 서로 다른 값을 반환해야 할 때 매우 유용하게 활용되며, 나머지 연산자(%)와 조합하면 홀수·짝수 판별 외에도 다양한 조건 분기 로직을 손쉽게 구현할 수 있습니다.