PostgreSQL COALESCE

문린이·2023년 10월 26일
1

PostgreSQL에서 데이터를 관리하다 보면 NULL 값이 어떻게 처리되는지 이해하는 것이 중요하게 됩니다. NULL은 값이 없거나 알 수 없는 데이터를 나타내기 때문에, 이를 적절하게 처리하지 않으면 예기치 않은 결과가 발생할 수 있습니다. PostgreSQL에서는 NULL 값을 효과적으로 관리하기 위해 COALESCE 함수를 제공합니다.

COALESCE 함수의 기본

COALESCE 함수는 첫 번째로 NULL이 아닌 값을 반환합니다.

COALESCE(value1, value2, ..., valueN);

COALESCE 함수는 인수 목록에서 왼쪽에서 오른쪽으로 이동하면서 첫 번째 NULL이 아닌 값을 찾아 반환합니다.

예제

다음은 COALESCE 함수의 간단한 예제입니다.

SELECT COALESCE(NULL, NULL, 'third value', 'fourth value');
-- Output: 'third value'

위에서 COALESCE 함수는 세 번째 값인 'third value'를 반환합니다, 왜냐하면 이 값이 첫 번째로 NULL이 아닌 값이기 때문입니다.

실제 사용 사례

기본 값 제공

데이터의 NULL 값을 기본 값으로 대체해야 하는 경우에 COALESCE 함수를 사용할 수 있습니다.

SELECT COALESCE(address, 'No Address Provided') AS user_address
FROM users;

두 테이블에서 값 찾기

두 테이블에서 동일한 정보를 찾아, 하나의 테이블에 값이 없는 경우 다른 테이블의 값을 사용할 수 있습니다.

SELECT users.name,
       COALESCE(primary_emails.email, secondary_emails.email) AS user_email
FROM users
LEFT JOIN primary_emails ON users.id = primary_emails.user_id
LEFT JOIN secondary_emails ON users.id = secondary_emails.user_id;

가장 최근의 날짜 찾기

여러 날짜 열 중에서 가장 최근의 날짜를 찾을 수 있습니다.

SELECT COALESCE(last_login, last_updated, created_at) AS most_recent_date
FROM users;

NULL 값 계산 처리

NULL 값이 있는 열을 사용하여 계산을 수행할 때 COALESCE 함수를 사용하여 NULL 값을 0으로 대체할 수 있습니다.

SELECT COALESCE(revenue, 0) - COALESCE(expenses, 0) AS profit
FROM financials;

마무리

COALESCE 함수는 PostgreSQL에서 NULL 값 처리를 간소화하고 코드의 견고성을 향상시키는 데 매우 유용합니다. 이 함수를 이해하고 사용하면 데이터베이스 작업을 더 효과적으로 수행할 수 있습니다.

profile
Software Developer

0개의 댓글