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
문을 성공적으로 구현할 수 있습니다.