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

MySQL IF 문으로 문자열 값을 반환하는 쿼리 작성 방법

MySQL의 IF() 함수는 조건식을 평가한 후, 조건이 참이면 두 번째 인수를, 거짓이면 세 번째 인수를 반환합니다. 이를 활용하면 숫자 데이터를 기준으로 '인턴 직원', '정규직 직원'과 같은 문자열 상태 값을 손쉽게 출력할 수 있습니다.

1. 샘플 테이블 생성

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeSalary int
);
Query OK, 0 rows affected (1.68 sec)

2. 레코드 삽입

INSERT 명령을 사용하여 테이블에 직원 급여 데이터를 입력합니다.

mysql> insert into DemoTable(EmployeeSalary) values(12000);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable(EmployeeSalary) values(20000);
Query OK, 1 row affected (0.55 sec)
mysql> insert into DemoTable(EmployeeSalary) values(11500);
Query OK, 1 row affected (0.94 sec)
mysql> insert into DemoTable(EmployeeSalary) values(15500);
Query OK, 1 row affected (0.44 sec)

3. 전체 데이터 조회

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

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

+----+----------------+
| Id | EmployeeSalary |
+----+----------------+
|  1 | 12000          |
|  2 | 20000          |
|  3 | 11500          |
|  4 | 15500          |
+----+----------------+
4 rows in set (0.00 sec)

4. IF 문으로 문자열 반환하기

다음은 IF 문을 사용하여 급여 조건에 따라 문자열을 반환하는 쿼리입니다. 급여가 12,000 이하이면 'Internship Employee(인턴 직원)', 그렇지 않으면 'FullTime Employee(정규직 직원)'가 표시되도록 작성했습니다.

mysql> select Id,
if(EmployeeSalary <= 12000 ,'Internship Employee','FullTime Employee') as status
from DemoTable;

실행 결과는 아래와 같습니다.

+----+---------------------+
| Id | status              |
+----+---------------------+
|  1 | Internship Employee |
|  2 | FullTime Employee   |
|  3 | Internship Employee |
|  4 | FullTime Employee   |
+----+---------------------+
4 rows in set (0.00 sec)

정리

IF(EmployeeSalary <= 12000, 'Internship Employee', 'FullTime Employee') 구문은 각 행의 급여 값을 평가하여 조건에 맞는 문자열을 반환합니다. 별칭(as status)을 지정하면 결과 컬럼명도 깔끔하게 정리할 수 있어, 보고서나 대시보드용 데이터를 만들 때 매우 유용합니다.