본문 바로가기
DATABASE/PostgreSQL

PostgreSQL COALESCE 함수 NULL 값 대체하는 방법과 활용 예시

by 프즈 2023. 4. 14.
반응형

PostgreSQL에서 COALESCE 함수는 NULL 값을 대체할 수 있는 값들 중에서 첫 번째로 나타나는 값을 반환하는 함수입니다. 이 함수는 인자로 받는 값들 중에서 NULL이 아닌 값이 존재하면, 첫 번째로 나타나는 NULL이 아닌 값을 반환하며, 모든 값이 NULL이면 NULL 값을 반환합니다.

COALESCE 함수의 사용 방법은 다음과 같습니다.

COALESCE(value1, value2, value3, ...)

value1, value2, value3, ...은 체크할 값들을 의미합니다. 이 함수는 첫 번째 값부터 순서대로 체크하며, NULL이 아닌 값을 만나면 그 값을 반환합니다. 만약 모든 값이 NULL이면 NULL 값을 반환합니다. 

예를 들어, 다음과 같이 COALESCE 함수를 사용할 수 있습니다.

SELECT COALESCE(NULL, 'value2', NULL, 'value4');

위의 쿼리는 'value2'를 반환합니다. 첫 번째 값이 NULL이므로 두 번째 값인 'value2'를 반환합니다.

COALESCE 함수는 주로 NULL 값을 다른 값으로 대체하기 위해 사용됩니다. 예를 들어, 데이터베이스에서 NULL 값을 가진 필드에 대해 계산을 수행하면 결과가 NULL이 되어버리므로 COALESCE 함수를 사용하여 NULL 값을 대체할 수 있습니다. 또한, 여러 개의 열 중에서 NULL 값을 가진 열에 대해 우선순위를 부여하여 데이터를 선택하는 경우에도 사용할 수 있습니다.

Oracle 데이터베이스에서는 NVL 함수가 COALESCE 함수와 비슷한 역할을 합니다. NVL 함수는 COALESCE 함수와 마찬가지로 첫 번째 인자를 검사하고, NULL이면 두 번째 인자로 대체합니다. 그러나 NVL 함수는 오직 두 개의 인자만을 받을 수 있기 때문에 COALESCE 함수보다는 제한적인 기능을 제공합니다.

COALESCE 함수를 사용할 때 주의해야 할 점은 인자로 전달하는 값들의 데이터 타입이 일치해야 한다는 것입니다. 데이터 타입이 다르면 오류가 발생할 수 있습니다. 또한, COALESCE 함수의 인자로 하나의 쿼리문이나 서브쿼리를 사용할 수도 있지만, 이 경우에는 성능 문제가 발생할 수 있으므로 주의해야 합니다.

반응형

'DATABASE > PostgreSQL' 카테고리의 다른 글

인덱스 생성 Lock Wait 최소화 하기 - Postgres  (0) 2023.03.28
PostgreSQL 사용자 삭제 하기  (0) 2021.11.17

댓글