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

MySQL 테이블 데이터에 COALESCE() 함수를 적용하는 방법

MySQL 테이블 데이터에 COALESCE() 함수 적용하기

MySQL 테이블의 데이터 값에 COALESCE() 함수를 적용하려면 이 함수의 인수로 컬럼 이름을 전달해야 합니다. COALESCE() 함수는 전달된 인수를 왼쪽에서 오른쪽 순서로 검사하며, 첫 번째 컬럼의 값이 NULL이라면 다음 컬럼을 확인하고, 이 과정을 NULL이 아닌 첫 번째 값을 찾을 때까지 반복합니다.

아래의 'employee' 테이블 데이터를 사용하여 이 개념을 실제로 살펴보겠습니다.

예제 테이블: employee

mysql> Select * from employee;
+----+------------+-------------+-----------+
| Id | First_Name | Middle_Name | Last_Name |
+----+------------+-------------+-----------+
| 1  | Advik      | NULL        | Jhamb     |
| 2  | Rahul      | Kumar       | Sharma    |
| 3  | Raman      | Singh       | Rajput    |
| 4  | Krishan    | Kumar       | Khurana   |
| 5  | Sachin     | Ramesh      | Tendulkar |
| 6  | NULL       | Kumar       | Gaurav    |
| 7  | NULL       | Singh       | Parmar    |
+----+------------+-------------+-----------+
7 rows in set (0.00 sec)

COALESCE() 함수 쿼리 실행

mysql> Select COALESCE(First_Name, Middle_Name, Last_Name) AS Name FROM Employee;
+---------+
| Name    |
+---------+
| Advik   |
| Rahul   |
| Raman   |
| Krishan |
| Sachin  |
| Kumar   |
| Singh   |
+---------+
7 rows in set (0.03 sec)

결과 분석

위 예제에서 COALESCE() 함수에는 세 개의 인수(First_Name, Middle_Name, Last_Name)가 전달되었습니다. 쿼리는 각 행에서 다음과 같은 우선순위로 이름을 반환합니다.

  • First_Name에 값이 있는 경우: First_Name 값을 그대로 반환합니다. (예: Advik, Rahul)
  • First_Name이 NULL인 경우: Middle_Name 값을 반환합니다. (예: 6번 행의 Kumar, 7번 행의 Singh)
  • First_Name과 Middle_Name이 모두 NULL인 경우: Last_Name 값을 반환합니다.
  • 세 컬럼이 모두 NULL인 경우: 최종적으로 NULL을 반환합니다.

이처럼 COALESCE() 함수는 여러 컬럼 중 NULL이 아닌 첫 번째 값을 손쉽게 가져와야 할 때 매우 유용하게 활용할 수 있습니다. 특히 빈 값이 허용되는 컬럼들에서 유효한 데이터를 우선적으로 조회해야 하는 상황에서 코드를 단순화하는 데 큰 도움이 됩니다.