MySQL의 CASE 문

Preet Sanghavi 2022년1월20일
MySQL의 CASE 문

이 튜토리얼에서는 MySQL에서 CASE 문을 사용하는 방법을 배우는 것을 목표로 합니다.

첫 번째 조건이 충족되면 CASE 문은 기준을 진행하고 값을 반환합니다(예: IF-THEN-ELSE 문). 조건이 참이면 프로그램은 읽기를 중지하고 결과를 반환합니다.

조건 중 어느 것도 참이 아닌 경우 ELSE 절의 값을 반환합니다. 코드에 ELSE 부분이 없는 경우 프로그램은 NULL을 반환합니다.

case 문의 구문은 다음과 같이 주어질 수 있습니다.

case when condition then result_1 else result_2 end;

예를 들어 이 문장에 대해 더 자세히 알아보도록 합시다.

그러나 시작하기 전에 작업할 더미 데이터 세트를 만듭니다. 여기에서 몇 개의 행과 함께 student_details 테이블을 만듭니다.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

위의 쿼리는 학생의 이름과 성이 포함된 행과 함께 테이블을 생성합니다. 데이터의 항목을 보려면 다음 코드를 사용합니다.

SELECT * FROM student_details;

앞서 언급한 코드는 다음과 같은 출력을 제공합니다.

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

이제 학생의 이름이 Preet일 때 학생의 성과 함께 Yes를 인쇄하는 것을 목표로 합시다. 그렇지 않으면 No를 인쇄합니다.

MySQL의 CASE

이전 구문에서 볼 수 있듯이 MySQL의 CASE 문에는 조건이 필요합니다. 이것은 IF..ELSE.. 문과 유사하게 작동합니다.

다음 코드 예제를 사용하여 MySQL에서 원하는 결과를 얻을 수 있습니다.

SELECT stu_lastName,
CASE stu_firstName
    WHEN 'Preet' THEN 'Yes'
    ELSE 'No'
END
AS RESULT
FROM student_details;

앞서 언급한 코드는 result라는 새 열과 함께 각 학생의 성을 가져옵니다. 이 결과 열은 학생의 이름이 Preet인 경우 Yes입니다.

위 코드의 출력은 다음과 같이 시각화할 수 있습니다.

stu_lastName	RESULT
Sanghavi		Yes
John			No
Brow			No
Jos				No
Shah			No
Parker			No
Miller			No

마찬가지로 CASE 문을 사용하여 데이터를 활용하고 요구 사항을 충족할 수 있습니다. CASE 문의 대안은 MySQL의 IF 문입니다.

따라서 이 튜토리얼의 도움으로 이제 MySQL에서 CASE 문을 성공적으로 구현할 수 있습니다.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

관련 문장 - MySQL Statement